如何使用 OpenSSL 和 Apache 启用 TLS 1.1 和 1.2

如何使用 OpenSSL 和 Apache 启用 TLS 1.1 和 1.2

鉴于安全问题日益增多,例如最近公布的针对 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

相关内容