常见问题解答:
1.运行“apachectl startssl”命令出现错误如何解决?
请注意查看日志文件,通常的错误是在http.conf配置文件中输入错误、拼写错误或者丢失路径造成的。
2.为什么我不能在相同IP地址下多个域名的虚拟主机上使用SSL?
这个问题十分专业,首先看(图3),可以看到SSL协议层是在HTTP协议层下面的,当SSL连接建立时,SSL模块在Web模块之前和浏览器进行通讯并交换证书、建立加密隧道。众所周知,Web服务器是通过HTTP数据包中的”Host”字段来区分虚拟主机的。而SSL模块在把服务器证书发送到浏览器时,还没有收到任何关于HTTP的数据包,更不知道虚拟主机的域名,因此SSL模块只能固定的将一张SSL证书发送到浏览器,而不能根据域名有选择性的发送证书。因此,您无法在一个IP地址的默认SSL 443端口下为多个虚拟主机配置多张证书。由于一个IP与一个端口号只能对应一张证书,因此我们可以采用以下方式来解决:为需要SSL加密的虚拟主机配置不同的IP地址,端口号都使用443。例如: www.domain1.com 的SSL使用 202.96.101.1:443 www.domain2.com的SSL使用 202.96.101.2:443,通过 https://www.domain1.com 和 https://www.domain2.com 访问这2个SSL网站了。
3. 如何建立一个仅使用SSLv2协议的服务器?
可以这样建立一个仅使用SSLv2协议及其密码算法的服务器:
在httpd.conf设置:
SSLProtocol -all +SSLv2
SSLCipherSuite SSLv2:+HIGH:+MEDIUM:+LOW:+EXP
4.如何建立一个仅接受高强度加密请求的SSL服务器?
如下设置为仅使用最强的七种密码算法:
在httpd.conf设置:
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
总结:
SSL可以用于在线交易时保护信用卡号、股票交易明细、账户信息等。当具有SSL功能的浏览器与WEB服务器(Apache)通信时,它们利用数字证书确认对方的身份。数字证书是由可信赖的第三方发放的,并被用于生成公共密钥。因此,采用了安全服务器证书的网站都会受SSL保护,其网页地址都具有“https”前缀,而非标准的“http”前缀。从目前钓鱼式攻击者的实践来看,大多没有这个标志,即使有,也可能是仿冒的比较容易识别,从而也这就进一步揭穿了他们的把戏。通过SSL(Secure socket layer)进行HTTP传输的协议就是HTTPS,它不但通过公用密钥的算法进行加密保证传输的安全性,而且还可以通过获得认证证书CA,保证客户连接的服务器没有被假冒。
本文介绍如何通过SSL加密Apache以提高OpenWebMail的安全。SSL除了可以用在Web服务器与浏览器之间信息交换以外,还可以支持其他我们所熟识的网络应用。以TCP/IP网络层来看,SSL是定位在网络层之上的应用协议,任何以TCP/IP层以上的网络协议SSL都可以支持,因此HTTP、FTP、SMTP等皆是SSL的保护范围。
参考文献:Apache 2 with SSL/TLS: Step-by-Step, Part 1, Part 2.
http://www.securityfocus.com/infocus/1818