gpt4 book ai didi

ruby - 使用 Net::HTTP 和 Ruby 1.8.7 更改 ssl 版本

转载 作者:数据小太阳 更新时间:2023-10-29 07:35:56 26 4
gpt4 key购买 nike

我的一个遗留 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 的用户)搞砸了吗?

编辑:事实上,如果服务器不支持SSLv3,客户端似乎正在切换到TLSv1。我有一个支持 SSL 的网站,不支持 SSLv3,位于 Nginx 之后,我已经验证我的 1.8.7 客户端正在切换到 TLSv1 并且请求有效。如果您想自己验证,请看这里:https://serverfault.com/questions/620123/how-can-i-let-nginx-log-the-used-ssl-tls-protocol-and-ciphersuite

最佳答案

In fact, it seems that the client is switching to TLSv1 if the server doesn't support SSLv3

恰恰相反。在 SSL 握手中,客户端向服务器显示它可以(协议(protocol)、密码)的内容,然后服务器也从中选择最好的。通常,客户端只是默认使用 SSLv23,它不会将客户端本身限制为特定协议(protocol)。如果服务器随后提供 TLSv1,他们将继续使用它,如果服务器仅提供 SSLv3,他们将使用 SSL 3.0。

如果您想限制客户端选择最佳但不再允许 SSL 3.0,请查看 https://stackoverflow.com/a/24237525/3081018关于如何通过设置 ssl_options 禁用 SSLv3。

关于ruby - 使用 Net::HTTP 和 Ruby 1.8.7 更改 ssl 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26424862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com