Lösung
Verwenden Sie OpenSSL::SSL::VERIFY_NONE
für Ihren Redis-Client.
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
Redis
Redis.new(url: 'url', driver: :ruby, ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE })
Grund
Redis 6 erfordert TLS für die Verbindung. Der Heroku-Support erklärte jedoch, dass sie Anfragen von der Routerebene bis zur Anwendungsebene mit selbstsignierten Zertifikaten verwalten. Es stellt sich heraus, dass Heroku SSL auf Routerebene beendet und Anfragen von dort über HTTP an die Anwendung weitergeleitet werden, während sich alles hinter Herokus Firewall und Sicherheitsmaßnahmen befindet.
Quellen
- https://ogirginc.github.io/en/heroku-redis-ssl-error
- https://devcenter.heroku.com/articles/securing-heroku-redis#connecting-directly-to-stunnel