繁体   English   中英

Ruby OpenSSL :: SSL :: SSLError

[英]Ruby OpenSSL::SSL::SSLError

我正在分析加密货币市场数据,并使用某些交易所的公共API。 该程序每隔几秒钟发出一次HTTPS请求。 奇怪的是,它发出了336个请求,而在337个请求上,它总是失败并显示:

/.rbenv/versions/2.4.5/lib/ruby/2.4.0/net/protocol.rb:44:in `connect_nonblock': SSL_connect SYSCALL returned=5 errno=0 state=error: certificate verify failed (OpenSSL::SSL::SSLError)

我尝试了请求之间的各种延迟(1秒,5、10秒),各种不同的交换(Bittrex,Poloniex,Tradeogre),各种版本的Ruby(2.3.8、2.4.5、2.5.3)和各种Linux发行版(Ubuntu 18.04.2 LTS,Debian 9.8)安装在各种主机上(Google Compute Engine,Amazon EC2)。 总是一样的-它在第337次迭代中失败。 在我的本地计算机(Ruby 2.5.3,Linux Mint 18.3)上,该程序运行时没有此类问题,仅在服务器上运行时才失败。 不知道问题是什么以及如何解决。 谢谢你的建议。

思路:

  • 禁用服务器证书验证(这是不安全的 ): open(request_uri, { ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE }) (请参阅https://stackoverflow.com/a/19172281/384689

  • 尝试使用其他CA(证书颁发机构)存储。 例如,您可以下载Firefox使用的版本: https : cert_store并将其作为cert_store参数传递给start()方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM