Solusi
Gunakan OpenSSL::SSL::VERIFY_NONE
untuk klien Redis Anda.
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
Merah
Redis.new(url: 'url', driver: :ruby, ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE })
Alasan
Redis 6 membutuhkan TLS untuk terhubung. Namun, dukungan Heroku menjelaskan bahwa mereka mengelola permintaan dari tingkat router ke tingkat aplikasi yang melibatkan Sertifikat yang Ditandatangani Sendiri. Ternyata, Heroku menghentikan SSL di tingkat router dan permintaan diteruskan dari sana ke aplikasi melalui HTTP sementara semuanya berada di belakang Firewall dan langkah-langkah keamanan Heroku.
Sumber
- https://ogirginc.github.io/en/heroku-redis-ssl-error
- https://devcenter.heroku.com/articles/securing-heroku-redis#connecting-directly-to-stunnel