我正在尝试在Resque的生产环境版本上调试失败的作业,因为这是我使用的所有Web界面:
Worker: 9c9fe9d3-8ee0-43fe-afcd-c6806fc75f0d:2 on sentiment_pull at just now
Class: SentimentJob
Arguments: [16, 17, 18]13
Exception: OpenSSL::SSL::SSLError
Error: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
这在开发中有效,我不知道为什么我会在Heroku上遇到OpenSSL错误。我也在使用Omniauth,因此我已经设置了初始化程序:
Rails.application.config.middleware.use OmniAuth::Builder do
provider #...
:client_options => {:ssl => {:ca_path => "/etc/ssl/certs"}}
end
我没有在Heroku上找到任何需要SSL证书的Resque示例,所以我有点难过,因为该作业设置为在HTTPS URL上发出请求。
答案 0 :(得分:0)
我最近遇到了这个问题,尽管有很多关于如何修复它的答案,但这是唯一一个对我有效的方法(我不是Heroku而是Debian VPS)。这在大多数情况下都是一个坏主意,但对于我需要接受自签名SSL记录的用例来说还不错。
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
这将导致OpenSSL无法验证SSL记录并将抑制错误。