【问题标题】:Herkou Redis - certificate verify failed (self signed certificate in certificate chain)Herkou Redis - 证书验证失败(证书链中的自签名证书)
【发布时间】:2021-05-20 14:41:41
【问题描述】:

我在我的一个业余项目中使用 heroku redis 已经有一段时间了。我目前将它用于 3 件事

  1. 它是我存储 Firebase 证书的地方
  2. 用于缓存网站上的数据
  3. 它用于 rails sidekiq 作业

最近,我的 heroku 使用率上升了,我不得不将其更改为使用 heroku redis 高级计划。从那以后,我一直以某种方式收到error: SSL_connect returned=1 errno=0 state=error: certificate verify failed (self signed certificate in certificate chain)。一切都保持不变,但错误开始突然出现。

heroku-redis 高级计划的工作方式与基本的 heroku-redis 计划有根本不同吗?

我在 Rails 上使用 ruby​​,如果有帮助的话,用 heroku redis 部署在 heroku 上。

【问题讨论】:

    标签: ruby-on-rails heroku redis heroku-redis


    【解决方案1】:

    实际上,当您在 Heroku 应用上安装 Heroku Redis 时,它会为您创建 2 个配置变量:REDIS_TLS_URL 和 REDIS_URL。

    文档实际上不正确,您必须将 SSL 设置为 verify_none,因为 TLS 会自动发生。

    来自 Heroku 支持:

    “我们的数据基础设施使用自签名证书,因此证书 可以定期循环……需要设置verify_mode 配置变量到 OpenSSL::SSL::VERIFY_NONE"

    【讨论】:

      【解决方案2】:

      根据 Heroku 的docs

      你需要

      创建一个名为 config/initializers/redis.rb 的初始化文件 包含:

      $redis = Redis.new(url: ENV["REDIS_URL"], ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE })
      

      如果您在尝试使用 sidekiq 时遇到此问题:

      创建一个名为 config/initializers/sidekiq.rb 的初始化文件,其中包含:

      Sidekiq.configure_server do |config|
        config.redis = { ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE } }
      end
      
      Sidekiq.configure_client do |config|
        config.redis = { ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE } }
      end
      

      【讨论】:

        猜你喜欢
        • 2021-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-18
        • 1970-01-01
        • 2021-11-10
        • 2023-01-03
        • 1970-01-01
        相关资源
        最近更新 更多