我想转换我们的外联网,目前可通过http使用https来代替。 服务器只能通过它的IP地址访问,没有域名。
我正在寻找一个免费的解决scheme来实现这个与Apache2。
您可能没有办法在每个人的客户端计算机上推送可信的CA. 公司内部可以做到这一点,但在外部做这件事更难一些。
您可以以每年29美元的价格从GoDaddy获得“真正的”SSL证书。 使用此设置,用户将获得SSL,并不会收到安全警告。
如果您自行签署证书,则一般情况下,用户在访问您的网站时都会收到警告。 如果你训练用户忽略这个警告,那么你就是击败了SSL的大部分。 如果用户通过公共无线热点连接,并且有人拦截他们的stream量,阻止中间人攻击的唯一工作是用户收到的证书警告。 “ 美丽的安全 ”一书有一个很好的章节解释了这是如何完成的,可以不要阻止这种情况发生。
您可以使用自签名SSL证书来完成此操作,但是,证书的重要部分在于它是通过可信第三方authentication属于实体的密钥。 通过签署自己的密钥,您可以抵消很多安全优势,特别是对于访问该网站的人以外的任何人。
如果您以外的人使用本网站,您应该购买证书和域名 – 每年可以less于100美元。
这就是说,有几个问题涉及自签名证书生成:
并configurationApache来处理https
至于将您的网站转换为https,它应该很容易。 只要拒绝服务于HTTP并configurationApache以使用SSL,并通过https服务您的Extranet。 网站本身不应该有任何事情要做。 所有configuration将在Apache上完成。
至于IP地址与域名,你需要与谁获得您的SSL证书谁说话。
有许多有用的文件和如何可用,这是一个开始: http : //ubuntuforums.org/showthread.php?t=3657
-js
在您的apacheconfiguration中,您可能最好将所有httpstream量redirect到https。 一种方法是在apacheconfiguration中设置两个虚拟主机,并且有一个类似于的行
Redirect / https://your.site.tld
这可能比拒绝服务非httpsstream量更好。
正如其他人所提到的,它已经很简单,并且可以自由地转换为https服务(或两者的组合)。 Apache可以configuration为使用mod_ssl以及服务器证书。 可以使用openssl创build一个自签名的服务器证书来生成它。
但是,这一切都取决于您使用SSL的原因。 如果仅仅是encryption会话,自签名证书可能会有所帮助,但不会阻止任何中间人攻击。 您希望客户端浏览器和Web服务器互相信任。
假设这是公司员工使用的东西,那么有一个免费的解决scheme。 您可以成为您自己的根CA,并为服务器和客户端生成证书。 所有需要的是将客户端浏览器configuration为接受自己的公司CA作为可信的 CA,这将有助于否定一些身份validation问题。
另外,您可以configurationApache来validation所有客户端证书,并拒绝来自任何客户端的连接,这些客户端不会提供用您自己的根CA签名的有效证书。 这可以帮助build立一个非常紧密的信任机制。 它将从本质上消除大多数攻击。
brianegge的答案是现货。
如果你所需要的只是encryption的好处,你可以自己签名,但对用户来说很难pipe理。 购买浏览器可以识别的CA证书,与自签证书会导致的恶化相比,这不值得。