我正在使用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 = /
答案 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。