确定我的openssl库的最新支持的SSL / TLS版本?

时间:2014-02-25 14:09:01

标签: curl ssl openssl

我正在使用Mac上的openssl 0.9.8x版本,当我尝试卷曲到HTTPS服务器时,我得到CURL error #35: Unsupported SSL protocol version

接受连接的服务器是Apache,vhost有这两个相关的行:

SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

我认为我的curl版本只支持支持SSLv2,可能因为它太旧了,这就是Apache拒绝连接的原因。有没有办法验证最新版本的SSL / TLS实际上是什么,所以我可以停止猜测?

为了记录,我尝试强制我的本地curl命令使用SSLv3,但是我仍然得到错误并不重要,可能是因为SSLv3无法使用。

修改:服务器的版本为1.0.1e-fips。我想也许在使用0.9.8到1.0或者其他东西连接到服务器时会出现问题,因为我的一些谷歌搜索让我相信在0.9.8中确实支持SSLv3。不幸的是我不能重新编译PHP以在这台机器上使用更新的openssl = /

1 个答案:

答案 0 :(得分:0)

您收到此错误,因为几乎所有SSLv2和v3都已停止使用。 Firefox和Chrome也停止使用SSLv3。

非常有用的SSL / TLS可以找到Apache 2.4操作方法here

为了获得最佳安全性,您需要设置

SSLProtocol -all +TLSv1.2

'-all'参数正在删除其他SSL / TLS协议(SSLv1,SSLv2,SSLv3和TLS1)。

'+ TLSv1.2'参数正在添加TLSv1.2。

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

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

您的密码套件

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

也应该更新。您可以使用:

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$

您可以调整和更改上面的任何一行,以最好地满足您的需求。

成功实施后,您可能需要test your server