我使用heroku已经有一段时间了,我的一个附带项目。我现在用它做三件事
最近,我的heroku使用率上升,我不得不改变它使用heroku的保费计划。从那以后,我以某种方式得到了error: SSL_connect returned=1 errno=0 state=error: certificate verify failed (self signed certificate in certificate chain)
。一切保持不变,但错误开始突然出现。
heroku-redis的保费计划与基本的heroku-redis计划有根本的不同吗?
如果这有帮助的话,我正在使用rails上的红宝石,部署在heroku和heroku上。
发布于 2021-02-19 22:54:55
实际上,当您在Heroku应用程序上安装heroku时,它将为您创建2个Config Vars : REDIS_TLS_URL和REDIS_URL。
文档实际上是不正确的,您必须将SSL设置为verify_none,因为TLS是自动发生的。
来自Heroku的支助:
“我们的数据基础设施使用自签名证书,因此证书可以定期循环.您需要将verify_mode配置变量设置为OpenSSL::SSL::VERIFY_NONE”
发布于 2021-08-19 21:23:48
根据Heroku的文档
你需要
创建一个名为config/initializers/redis.rb的初始化程序文件,该文件包含:
$redis = Redis.new(url: ENV["REDIS_URL"], ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE })
此外,如果您在尝试使用sidekiq时遇到此问题:
创建一个名为config/initializers/ file kiq.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
发布于 2022-08-25 22:46:54
@ricks的回答给了我90%的机会,但是对于像我这样在Heroku‘config中使用Rails.cache的人来说,您不需要这个初始化器,只需要production.rb中的这个配置行:
config.cache_store = :redis_cache_store, { url: ENV['REDIS_URL'], ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE } }
https://stackoverflow.com/questions/66246528
复制相似问题