大佬教程收集整理的这篇文章主要介绍了Ruby:SSL_connect SYSCALL返回= 5 errno = 0 state =未知状态(OpenSSL :: SSL :: SSLError),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在运行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版本.
你能告诉我导致这个问题究竟发生了什么变化吗?
更新:
斯蒂芬的回答和解释如下.供将来参考,以下是诊断此问题的方法.
>首先确定服务器支持哪些密码.运行命令nmap –script ssl-enum-ciphers ntpnow.com.找到列出支持的密码的部分.
>确定您必须作为http.ciphers的一部分传递的密钥.运行openssl密码.这将吐出一个:分隔的密码列表.找到与步骤1中的结果匹配的那个.
http.ssl_version = :TLSv1 http.ciphers = ['DES-CBC3-SHA']
以上是大佬教程为你收集整理的Ruby:SSL_connect SYSCALL返回= 5 errno = 0 state =未知状态(OpenSSL :: SSL :: SSLError)全部内容,希望文章能够帮你解决Ruby:SSL_connect SYSCALL返回= 5 errno = 0 state =未知状态(OpenSSL :: SSL :: SSLError)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。