【发布时间】:2014-11-06 23:34:39
【问题描述】:
以下代码产生以下错误:OpenSSL::SSL::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read server hello A
require 'net/https'
uri = URI.parse("https://<server>.com")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.ssl_version = 'SSLv3'
http.get(uri.request_uri)
知道为什么吗?我尝试了所有其他问题中提到的所有内容,但仍然没有运气。
- Ruby 1.9.3p484(2013-11-22 修订版 43786)[x86_64-darwin13.3.0]
- OpenSSL 0.9.8y 2013 年 2 月 5 日
更新我
尝试了以下方法:
- Ruby 2.0.0p353(2013-11-22 修订版 43784)[x86_64-darwin13.3.0]
- OpenSSL 1.0.1i 2014 年 8 月 6 日
更新二
- 强制 ssl_version 为 :TLSv1_2
还是没有运气。
更新 III
好的,这是最终代码 - 感谢 Steffen(请参阅下面的答案):
require 'net/https'
uri = URI.parse("https://<server>.com")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.ssl_version = :TLSv1
http.ciphers = ['RC4-SHA']
http.get(uri.request_uri)
我怀疑我的问题与其他任何人有关,因为它与远程配置错误的服务器有关。
【问题讨论】:
-
它对我很有用:)
-
也在 /r/asknetsec reddit.com/r/AskNetsec/comments/64ulgg/…
-
一个原因可能只是网络断开。我花了 5 个小时才知道:|
-
对我有用的是减少线程数。
标签: ruby-on-rails ruby openssl net-http