我曾经收到以下错误:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
from C:/Ruby1.9.2/lib/ruby/1.9.1/net/http.rb:678:in `connect'
阅读this后,我发现该修复程序是从here下载cacert.pem文件。帖子建议做这样的事情:
ENV['SSL_CERT_FILE'] = File.join(File.dirname(__FILE__),"cacert.pem")
事实上,这解决了这个问题。但是,谁读取SSL_CERT_FILE
的值?改变环境似乎不像是“Ruby方式”。我正在寻找一种可以兼容Rails和Sinatra的解决方案。
答案 0 :(得分:9)
openssl库使用SSL_CERT_FILE环境变量。