ruby – SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证
发布时间:2020-12-17 02:05:23 所属栏目:百科 来源:网络整理
导读:这篇文章几乎复制了许多其他帖子,包括 Rails 4 and Ruby 2 Net/HTTP SSL Request: OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol和 SSL_connect returned=1 errno=0 state=SSLv3 read serv
这篇文章几乎复制了许多其他帖子,包括
Rails 4 and Ruby 2 Net/HTTP SSL Request: OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol和
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed,但有一个关键区别:“证书验证失败”错误仅在通过SSL代理(
Charles)代理时发生,并且仅在最新版本的Ruby中发生.
具体来说,这个(非代理)代码有效: uri = URI.parse('https://www.ibm.com') http = Net::HTTP.new(uri.host,uri.port,nil) http.use_ssl = true http.start { |agent| agent.get(uri.path) } 并且此(代理)代码因“证书验证失败”错误而失败: uri = URI.parse('https://www.ibm.com') http = Net::HTTP.new(uri.host,"localhost",8888) http.use_ssl = true http.start { |agent| agent.get(uri.path) } 这个谜题 在当前版本的Ruby / OpenSSL中通过代理时,仅出现错误.特别是: >不通过代理时没有错误,这使我认为本地证书是有效的. 所有这些让我怀疑一个真正的Ruby bug,而不是我的证书的问题,但我很乐意以其他方式显示. 当前的环境 我正在观察这个环境的错误: $system_profiler SPSoftwareDataType | grep "System Version" System Version: OS X 10.8.5 (12F45) $ruby --version ; openssl version ; gem list | grep http ruby 2.0.0p247 (2013-06-27) [x86_64-darwin12.4.0] OpenSSL 1.0.1e 11 Feb 2013 http-cookie (1.0.2) http_router (0.10.2) net-http-digest_auth (1.4) net-http-persistent (2.9) ntlm-http (0.1.1) 以前的环境 稍微旧版本的ruby / OpenSSL不会出现该错误: $ruby --version ; openssl version ; gem list | grep http ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin10.8.0] OpenSSL 0.9.8y 5 Feb 2013 http_router (0.11.0,0.10.2) httpauth (0.2.0) net-http-digest_auth (1.2.1) net-http-persistent (2.8) ntlm-http (0.1.1) 解决方法
这里发生的事情是Charles无法为您提供“
https://www.ibm.com”的有效证书,因为您设置Charles的证书(或者如果Charles创建自己的证书),它不能用于“www.ibm.com”名称并由受信任的证书颁发机构认证.这就是如果客户端验证证书,连接失败的原因,如果您跳过验证,则连接失败
http.verify_mode = OpenSSL::SSL::VERIFY_NONE 它可能适用于旧版本的ruby,因为“net / https”已经过调整以验证默认情况下,证书仅在最近 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |