当前位置: 首页 > 知识库问答 >
问题:

OpenSSL::SSL::SSL错误:SSL _ connect returned = 1 errno = 0 state = error:证书验证失败

楚昀
2023-03-14

我在 Heroku 上托管了 Rails API 服务器,该服务器对客户端在初始 API 请求中指定的回调 URL 发出异步 POST 请求。

当我试图通过SSL向我的一个客户的webapp发送邮件时,我遇到了一个问题。

connection = Faraday::Connection.new('https://subdomain.some_client.com', ssl: { ca_file: '/usr/lib/ssl/certs/ca-certificates.crt' })
connection.get '/test'

以下会引发错误:

Faraday::Error::ConnectionFailed: SSL_connect returned=1 errno=0 state=error: certificate verify failed

但是,如果我通过HTTPS发布到另一台服务器,例如谷歌,它工作正常

connection = Faraday::Connection.new('https://www.google.com', ssl: { ca_file: '/usr/lib/ssl/certs/ca-certificates.crt' })
connection.get '/'

这是否意味着问题出在客户端的SSL配置上?如果是这样,我如何帮助他们解决问题?

更新:

我可以毫无问题地将URL POST发送到客户端的webapp,只有当我通过ruby的HTTP库执行时才会失败

非常感谢。谢谢。

共有1个答案

孙成化
2023-03-14

我的猜测是,客户端 Web 应用的 SSL 证书存在问题。也许存在过期或无效的证书。你可以试试这个答案。

如果您需要解决这个问题(但由于潜在的安全漏洞,这可能不是一个好的永久解决方案),您应该能够在应用程序中的Bundler.require之前关闭证书验证。rb:

require 'openssl'
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
 类似资料:
  • 误差 PHP警告:stream_socket_client():SSL操作失败,代码为1。OpenSSL错误消息:错误:14090086:SSL例程:SSL3_GET_Server_Certifice:证书验证失败

  • 问题内容: 在Windows Vista SP2 + Python 2.7.10上,我可以连接到https://www.python.org,但不能连接到https://codereview.appspot.com 剧本: 并输出: 如何解决问题,https://codereview.appspot.com/到底有什么问题? 问题答案: 我的猜测是,它与OpenSSL中的替代链处理有关,如Pyth

  • 当我想要在cPanel上安装证书时,我会看到以下错误: 错误证书验证失败! 已执行/usr/bin/openssl verify-capath/var/cpanel/ssl/installed/cabundles: stdin:CN=example.com 0深度查找时错误20:无法获取本地颁发者证书

  • 问题内容: 这段代码 给我这个错误 我对SSL几乎一无所知,但我曾尝试下载该站点的证书并使用该选项指向该文件,但是它没有用。我想念什么吗? 问题答案: 正如评论中已经指出的那样:从SSLLabs报告中可以看出,该网站的SSL实施不正确。该报告中有关您的问题的主要部分是: 该服务器的证书链不完整。等级上限为B。 这意味着服务器没有发送验证证书所需的完整证书链。这意味着您需要在验证时自行添加丢失的证书

  • 我使用Let's encrypt free SSL(默认情况下,我的主机提供商支持它),我检查了我在SSLShopper.com的网站(唯一的警告是:)和https://www.geocerts.com/SSL_checker。结果是我的网站通过了所有测试,除了。所以我不认为问题出在证书上,据我所知,telegram接受自签名证书。 我曾尝试在https://core.telegram.org/b