【问题标题】:How do I set an SSL certificate for Resque on Heroku?如何在 Heroku 上为 Resque 设置 SSL 证书?
【发布时间】:2012-06-22 14:53:53
【问题描述】:

我正在尝试在生产环境版本的 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 上执行请求。

【问题讨论】:

    标签: ruby-on-rails heroku resque


    【解决方案1】:

    我最近遇到了这个问题,尽管有很多关于如何解决它的答案,但这是唯一对我有用的问题(我不在 Heroku 上,而是在 Debian VPS 上)。大多数时候这是一个坏主意,但对于我需要接受自签名 SSL 记录的用例来说很好。

    OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
    

    这将导致 OpenSSL 不验证 SSL 记录并抑制错误。

    【讨论】:

    • 我看过这个答案,我真的不认为这是一个好主意。
    • 我同意,这不是一个答案,而是一种解决方法。但是对我来说,这是我需要的解决方案,因为我不能肯定每个客户都会拥有 CA 签名证书。
    • 所以有了这个,我得到了warning: already initialized constant VERIFY_PEER,但我担心它会禁用 VERIFY_PEER 以用于需要验证的应用程序的其他部分(如 OmniAuth)。
    猜你喜欢
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 2023-03-13
    • 1970-01-01
    • 2013-09-24
    相关资源
    最近更新 更多