我的一个遗留 Ruby 应用程序仍然使用 Ruby 1.8.7。它在第三方 Web 服务上发出大量 HTTP 请求,其中一些通过 SSL。
由于 POODLE 漏洞,这些第三方服务正在放弃对 SSLv3 的支持,我想修补我的客户端以继续连接到它们。
Ruby 的标准库Net::HTTP
似乎没有办法更改使用的 SSL 版本。
在 Ruby openssl
( ssl-internal.rb ) 中有一种方法可以更改版本。可悲的是,Net::HTTP
( https.rb ) 没有公开这一点。
我们(Ruby 1.8.7 的用户)搞砸了吗?
编辑:事实上,TLSv1
如果服务器不支持,客户端似乎正在切换到SSLv3
. 我在 Nginx 后面有一个不支持 SSLv3 的启用 SSL 的网站,并且我已经验证我的 1.8.7 客户端正在切换到 TLSv1 并且请求有效。如果您想自己验证,请看这里:https ://serverfault.com/questions/620123/how-can-i-let-nginx-log-the-used-ssl-tls-protocol-and-ciphersuite