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

Joh*_*ohn 36 security mod-ssl openssl apache-2.2

鉴于越来越多的安全问题,例如新宣布的针对 SSL/TLS 的浏览器漏洞利用 (BEAST),我很好奇我们如何通过 OpenSSL 和 Apache 启用 TLS 1.1 和 1.2 以确保我们不会受到攻击到此类威胁载体。

Fro*_*giz 30

TLS1.2 现在可用于 apache,要添加 TLSs1.2,您只需在 https 虚拟主机配置中添加:

SSLProtocol -all +TLSv1.2
Run Code Online (Sandbox Code Playgroud)

-all 正在删除其他 ssl 协议(SSL 1,2,3 TLS1)

+TLSv1.2 正在添加 TLS 1.2

为了获得更多浏览器兼容性,您可以使用

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您也可以使用以下方法增加密码套件:

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$
Run Code Online (Sandbox Code Playgroud)

您可以使用在线扫描仪测试您的 https 网站安全性,例如:https : //www.ssllabs.com/ssltest/index.html

  • 我不知道为什么这篇文章被标记为“过时”。我使用了推荐的解决方案,我客户的网站从 Qualsys SSL 实验室的“C”评级变为“A”。 (3认同)

Bob*_*ger 11

使用最新版本的 OpenSSL 编译 apache 以启用 TLSv1.1 和 TLSv1.2

http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslprotocol

SSLProtocol +TLSv1.1 +TLSv1.2
Run Code Online (Sandbox Code Playgroud)


Ser*_*sov 10

根据OpenSSL changelog,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。但是,这个模块似乎比较新,可能不是很稳定;我从未尝试使用它。

  • 一年后,这个答案仍然准确吗? (2认同)
  • @BenWalther OpenSSL 1.0.1 于 2012 年 3 月发布,支持 TLS 1.2。目前的最新版本是 1.0.1c。我不确定帖子的其余部分有多少仍然有效。 (2认同)

Ste*_*e-o 6

你不能,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 提供的站点。昨天出于好奇,我重新尝试了它,现在甚至 Opera 11.51 在 TLS 1.1 和 1.2 上都卡住了。所以在那里。没有什么真正支持这些协议。必须等待 TLS 1.1 的 OpenSSL 1.0.1 并且没有人知道什么时候会到达 repos。

http://it.slashdot.org/comments.pl?sid=2439924&cid=37477890