Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Como habilitar o TLS para Redis 6 no Sidekiq?

Solução


Use OpenSSL::SSL::VERIFY_NONE para o seu cliente Redis.

Acessório

# 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


O Redis 6 requer TLS para se conectar. No entanto, o suporte da Heroku explicou que eles gerenciam solicitações do nível do roteador para o nível do aplicativo envolvendo certificados autoassinados. Acontece que o Heroku encerra o SSL no nível do roteador e as solicitações são encaminhadas de lá para o aplicativo via HTTP enquanto tudo está por trás do Firewall do Heroku e das medidas de segurança.

Fontes
  • https://ogirginc.github.io/en/heroku-redis-ssl-error
  • https://devcenter.heroku.com/articles/securing-heroku-redis#connecting-directly-to-stunnel