我试图通过Nokogiri解析HTTPS XML提要但我收到此OpenSSL错误:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
我也可以看到SSL_CERT_FILE:
echo $SSL_CERT_FILE /home/user/certs/cacert.pem
这就是我试图解析的方式:
@feed = "https://example.com/feed1.xml" doc = Nokogiri::XML(open(@feed)
我试图绕过OpenSSL验证,但我仍然得到同样的错误:
doc = Nokogiri::XML(open(@feed,{ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE}))
有人可以帮忙吗?
此问题通常出现在Windows上.
一个快速的解决方案是传递ssl_verify_mode
给开放
require 'open-uri' require 'openssl' open(some_url, ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE)
另一个快速的方法是OpenSSL::SSL::VERIFY_PEER
在脚本的开头重写
require 'openssl' OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
想要真正解决方案的人可以尝试https://gist.github.com/fnichol/867550上描述的方法