sql >> Base de Datos >  >> NoSQL >> Redis

¿Cómo habilitar TLS para Redis 6 en Sidekiq?

Solución

Utilice OpenSSL::SSL::VERIFY_NONE para su cliente de Redis.

Acompañante

# 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 })

Motivo

Redis 6 requiere TLS para conectarse. Sin embargo, el soporte de Heroku explicó que administran las solicitudes desde el nivel del enrutador hasta el nivel de la aplicación que involucra certificados autofirmados. Resulta que Heroku finaliza SSL en el nivel del enrutador y las solicitudes se reenvían desde allí a la aplicación a través de HTTP mientras todo está detrás del cortafuegos y las medidas de seguridad de Heroku.

Fuentes

  • https://ogirginc.github.io/en/heroku-redis-ssl-error
  • https://devcenter.heroku.com/articles/asegurando-heroku-redis#conectando-directamente-a-stunnel