鉴于越来越多的安全问题,比如最近公布的针对SSL / TLS的浏览器漏洞(BEAST),我很好奇我们如何能够使用OpenSSL和Apache来启用TLS 1.1和1.2,以确保我们不会受到攻击到这样的威胁载体。
TLS1.2现在可用于Apache,添加您只需要添加到您的https虚拟主机configuration的TLSs1.2:
SSLProtocol -all +TLSv1.2
-all
删除其他ssl协议(SSL 1,2,3 TLS1)
+TLSv1.2
正在添加TLS 1.2
为更多的浏览器兼容性,你可以使用
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
顺便说一下,你也可以使用以下方法增encryption码套件:
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GC$
您可以使用在线扫描器来testing您的https网站安全性,例如: https : //www.ssllabs.com/ssltest/index.html
根据OpenSSL更新日志 ,对OpenSSL 1.0.1的开发分支添加了对TLS 1.2的支持,但是该版本尚未发布。 在mod_ssl代码中可能还需要一些更改来为Apache实际启用TLS 1.2。
另一个常用的SSL / TLS库是NSS ; 它被一个不太知名的Apache模块mod_nss使用 ; 不幸的是,目前的NSS版本也不支持TLS 1.2。
另一个SSL / TLS库是GnuTLS ,它假装已经在其当前版本中支持TLS 1.2。 有一个使用GnuTLS的Apache模块: mod_gnutls ,也声称支持TLS 1.2。 但是,这个模块似乎比较新,可能不是很稳定; 我从来没有试过使用它。
使用最新版本的OpenSSL编译apache以启用TLSv1.1和TLSv1.2
http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslprotocol
SSLProtocol +TLSv1.1 +TLSv1.2
你不能,OpenSSL还没有提供TLS 1.1版本。
一个有关的评论/。 对于这个问题:
你会向未经洗刷的群众解释,在一个主导的图书馆OpenSSL尚未支持其稳定版本中的协议的世界中,如何实现TLS 1.1和1.2的支持? 当然,你可以使用GnuTLS和mod_gnutls,我已经尝试过了,但没有意义,因为Opera除了支持它之外没有任何浏览器支持它,模块中还有一些奇怪的故障。 IE 8/9应该在Vista和7下支持它们,但在客户端启用1.1和1.2时,却无法访问mod_gnutls服务的站点。 昨天刚刚出于好奇,我重新尝试了一下,现在连TLS1.1和1.2都是Opera 11.51呛声。 那么在那里。 没有什么真的支持协议。 必须等待TLS 1.1的OpenSSL 1.0.1,没有人知道什么时候会打到回购站。
Google Chrome工程师Adam Langley指出,由于SSLv3的实施问题,每个人都必须解决,因此TLS 1.1不能解决这个问题:浏览器必须降级到SSLv3才能支持越野车服务器,攻击者可以启动降级。
http://www.imperialviolet.org/2011/09/23/chromeandbeast.html
Gnu_tls就像一个魅力,它也实现了SNI(服务器名称识别),这是非常有用的虚拟主机….
也没有问题,findbin包在mod_gnutls在Linux发行版,我使用它,因为2年,没有问题,它也比openssl imho更高性能。
但问题是,大多数浏览器不支持tls 1.1或1.2,所以请开始漫游升级浏览器到人们的想法。