我在Heroku上托管了Rails API服务器,该服务器通过一个由客户端在初始API请求中指定的回调URL发出异步POST请求。
当我尝试通过SSL向我的一位客户的Web应用程序进行POST时,出现了问题。
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配置有问题?如果是这样,我如何帮助他们调试问题?
更新:
我可以使用cURL向客户端的Web应用程序进行POST请求而没有任何问题,只有当我通过Ruby的HTTP库进行请求时才失败。
非常感谢。 谢谢
OpenSSL::SSL.send(:remove_const,:VERIFY_PEER)
(示例代码)。 - taniushttp.verify_mode = OpenSSL :: SSL :: VERIFY_NONE
[参考](https://blog.engineyard.com/ruby-ssl-error-certificate-verify-failed) - Nejuf