Herkou Redis - 证书验证失败(证书链中的自签名证书)
Herkou Redis - certificate verify failed (self signed certificate in certificate chain)
我在我的一个副项目中使用 heroku redis 已经有一段时间了。我目前用它做 3 件事
- 它作为我存储 firebase 证书的地方
- 用于网站缓存数据
- 它用于 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 上。
实际上,当您在 heroku 应用程序上安装 Heroku Redis 时,它会为您创建 2 个配置变量:REDIS_TLS_URL 和 REDIS_URL。
文档实际上是不正确的,您必须将 SSL 设置为 verify_none,因为 TLS 会自动发生。
来自 Heroku 支持:
"Our data infrastructure uses self-signed certificates so certificates
can be cycled regularly... you need to set the verify_mode
configuration variable to OpenSSL::SSL::VERIFY_NONE"
根据 Heroku 的 docs
你需要
Create an initializer file named config/initializers/redis.rb
containing:
$redis = Redis.new(url: ENV["REDIS_URL"], ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE })
此外,如果您在尝试使用 sidekiq 时遇到此问题:
Create an initializer file named config/initializers/sidekiq.rb containing:
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
我在我的一个副项目中使用 heroku redis 已经有一段时间了。我目前用它做 3 件事
- 它作为我存储 firebase 证书的地方
- 用于网站缓存数据
- 它用于 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 上。
实际上,当您在 heroku 应用程序上安装 Heroku Redis 时,它会为您创建 2 个配置变量:REDIS_TLS_URL 和 REDIS_URL。
文档实际上是不正确的,您必须将 SSL 设置为 verify_none,因为 TLS 会自动发生。
来自 Heroku 支持:
"Our data infrastructure uses self-signed certificates so certificates can be cycled regularly... you need to set the verify_mode configuration variable to OpenSSL::SSL::VERIFY_NONE"
根据 Heroku 的 docs
你需要
Create an initializer file named config/initializers/redis.rb containing:
$redis = Redis.new(url: ENV["REDIS_URL"], ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE })
此外,如果您在尝试使用 sidekiq 时遇到此问题:
Create an initializer file named config/initializers/sidekiq.rb containing:
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