无法绕过OpenSSL验证 - 证书验证失败(OpenSSL :: SSL :: SSLError)

 yu2531958135 发布于 2023-01-04 13:20

我试图通过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}))

有人可以帮忙吗?

1 个回答
  • 此问题通常出现在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上描述的方法

    2023-01-04 13:23 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有