![如何使用 OpenSSL 和 Apache 启用 TLS 1.1 和 1.2](https://linux22.com/image/562470/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20OpenSSL%20%E5%92%8C%20Apache%20%E5%90%AF%E7%94%A8%20TLS%201.1%20%E5%92%8C%201.2.png)
鉴于安全问题日益增多,例如最近公布的针对 SSL/TLS 的浏览器漏洞 (BEAST),我很好奇我们如何使用 OpenSSL 和 Apache 启用 TLS 1.1 和 1.2,以确保我们不会受到此类威胁媒介的攻击。
答案1
TLS1.2 现在可用于 apache,要添加 TLSs1.2,您只需在 https 虚拟主机配置中添加:
SSLProtocol -all +TLSv1.2
-all
正在删除其他 SSL 协议 (SSL 1,2,3 TLS1)
+TLSv1.2
正在添加 TLS 1.2
为了提高浏览器兼容性,您可以使用
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
顺便说一下,您也可以使用以下命令增加密码套件:
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$
您可以使用在线扫描仪测试您的 https 网站安全性,例如: https://www.ssllabs.com/ssltest/index.html
答案2
使用最新版本的 OpenSSL 编译 apache,以启用 TLSv1.1 和 TLSv1.2
http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslprotocol
SSLProtocol +TLSv1.1 +TLSv1.2
答案3
根据OpenSSL 更新日志,OpenSSL 1.0.1 的开发分支已添加对 TLS 1.2 的支持,但此版本尚未发布。可能还需要对 mod_ssl 代码进行一些更改才能真正为 Apache 启用 TLS 1.2。
另一个常用的 SSL/TLS 库是国家安全战略;它被一个不太知名的 Apache 模块使用mod_nss;不幸的是,当前的 NSS 版本也不支持 TLS 1.2。
另一个 SSL/TLS 库是加密传输协议,并且它假装在其当前版本中已经支持 TLS 1.2。有一个使用 GnuTLS 的 Apache 模块:mod_gnutls,它还声称支持 TLS 1.2。但是,这个模块似乎相当新,可能不太稳定;我从未尝试使用它。
答案4
Google Chrome 工程师 Adam Langley 指出,TLS 1.1 无法解决这个问题,因为 SSLv3 存在一个实现问题,每个人都必须解决这个问题:浏览器必须降级到 SSLv3 才能支持有缺陷的服务器,而攻击者可以启动这种降级。
http://www.imperialviolet.org/2011/09/23/chromeandbeast.html