gpt4 book ai didi

Ruby: SSL_connect SYSCALL returned=5 errno=0 state=unknown 状态 (OpenSSL::SSL::SSLError)

转载 作者:数据小太阳 更新时间:2023-10-29 06:41:41 25 4
gpt4 key购买 nike

此错误的变体已在各处发布,但似乎没有一个解决方案适合我。

我正在运行 ruby 2.2.2p95(2015-04-13 修订版 50295)[x86_64-linux]OpenSSL 1.0.1k 2015 年 1 月 8 日

运行以下内容:

require 'net/http'
require 'openssl'

url = 'https://ntpnow.com/'
uri = URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.ssl_version = :TLSv1
http.get(uri.path)

转储此跟踪:

/usr/local/lib/ruby/2.2.0/net/http.rb:923:in `connect': SSL_connect SYSCALL returned=5 errno=0 state=unknown state (OpenSSL::SSL::SSLError)
from /usr/local/lib/ruby/2.2.0/net/http.rb:923:in `block in connect'
from /usr/local/lib/ruby/2.2.0/timeout.rb:74:in `timeout'
from /usr/local/lib/ruby/2.2.0/net/http.rb:923:in `connect'
from /usr/local/lib/ruby/2.2.0/net/http.rb:863:in `do_start'
from /usr/local/lib/ruby/2.2.0/net/http.rb:852:in `start'
from /usr/local/lib/ruby/2.2.0/net/http.rb:1375:in `request'
from /usr/local/lib/ruby/2.2.0/net/http.rb:1133:in `get'
from bin/ntpnow_test.rb:9:in `<main>'

从浏览器导航到该站点显示证书似乎没问题。 Curl 也不会产生任何错误。

此外,当我尝试使用 Ruby 1.9.3 时,它似乎可以正常工作。但是,如果我能找到解决方案,我不倾向于降级 Ruby 版本。

您能告诉我到底是什么改变导致了这个问题吗?

更新:

Steffen 在下面的回答和解释是正确的。为了将来引用,以下是诊断此问题的方法。

  1. 首先确定服务器支持哪些密码。运行命令 nmap --script ssl-enum-ciphers ntpnow.com。找到列出支持的密码的部分。
  2. 确定您必须作为 http.ciphers 的一部分传递的 key 。运行 openssl 密码。这将吐出一个 : 分隔的密码列表。找到与第 1 步的结果相匹配的结果。

最佳答案

这看起来与我在 https://stackoverflow.com/a/29611892/3081018 中回答的问题完全相同.同样的问题:服务器只能做 TLS 1.0 并且只支持 DES-CBC3-SHA 作为密码。在最近的 ruby​​ 版本中默认情况下不再启用此密码。要连接此密码,请尝试在您的代码中明确指定密码:

http.ssl_version = :TLSv1
http.ciphers = ['DES-CBC3-SHA']

关于Ruby: SSL_connect SYSCALL returned=5 errno=0 state=unknown 状态 (OpenSSL::SSL::SSLError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33572956/

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