Oplossing
Gebruik OpenSSL::SSL::VERIFY_NONE
voor uw Redis-klant.
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
Opnieuw
Redis.new(url: 'url', driver: :ruby, ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE })
Reden
Redis 6 vereist TLS om verbinding te maken. Heroku-ondersteuning legde echter uit dat ze verzoeken beheren van het routerniveau tot het applicatieniveau met zelfondertekende certificaten. Het blijkt dat Heroku SSL op routerniveau beëindigt en verzoeken van daaruit via HTTP naar de applicatie worden doorgestuurd terwijl alles achter Heroku's Firewall en veiligheidsmaatregelen zit.
Bronnen
- https://ogirginc.github.io/en/heroku-redis-ssl-error
- https://devcenter.heroku.com/articles/securing-heroku-redis#connecting-directly-to-stunnel