首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSL证书验证在Heroku Redis上失败

SSL证书验证在Heroku Redis上失败
EN

Stack Overflow用户
提问于 2020-11-27 18:59:49
回答 6查看 6.1K关注 0票数 9

我在Heroku上部署了一个烧瓶应用程序,使用的是Redis高级计划。我得到以下错误:“SSL证书验证失败”。试图修复:

  • 降级至Redis 5
  • ssl_cert_reqs=None传递给redis-py中的Redis构造函数

解决这一问题的办法可以是:

  1. 解释如何在heroku redis保费计划上禁用TLS认证。
  2. 解释如何在heroku redis保费计划上使TLS认证工作

在Heroku的文档中,这可能是一个提示:“为了连接到Redis 6数据库,您必须在Redis客户端的配置中启用TLS”。我不明白这意味着什么。

EN

回答 6

Stack Overflow用户

发布于 2021-12-06 11:44:51

我通过在Heroku配置中将?ssl_cert_reqs=CERT_NONE添加到REDIS_URL的末尾来解决我的问题。

票数 7
EN

Stack Overflow用户

发布于 2020-11-27 22:37:48

您可以通过将ssl_cert_reqs=None降级为Redis 5并将Redis构造函数传递给Redis构造函数,从而禁用Heroku上的TLS证书。

代码语言:javascript
复制
$ heroku addons:create heroku-redis:premium-0 --version 5
代码语言:javascript
复制
from redis import ConnectionPool, Redis
import os
connection_pool = ConnectionPool.from_url(os.environ.get('REDIS_URL'))
app.redis = Redis(connection_pool=connection_pool, ssl_cert_reqs=None)

我的错误是没有同时做这两件事。

理想的解决方案是解释如何为Redis 6配置TLS认证。

票数 6
EN

Stack Overflow用户

发布于 2021-01-05 14:30:14

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

来自Heroku的支助:

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

我通过将ssl_params设置为verify_none来解决这个问题:

代码语言:javascript
复制
ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE } }

对我来说,它是我配置redis的地方(在sidekiq初始化器中):

代码语言:javascript
复制
# config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
  config.redis = { url: ENV['REDIS_URL'], size: 1, network_timeout: 5, 
    ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE } }
end

Sidekiq.configure_server do |config|
  config.redis = { url: ENV['REDIS_URL'], size: 7, network_timeout: 5, 
    ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE } }
end
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65042551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档