समाधान
OpenSSL::SSL::VERIFY_NONE
. का उपयोग करें आपके रेडिस क्लाइंट के लिए।
साइडकीक
# 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.new(url: 'url', driver: :ruby, ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE })
कारण
Redis 6 को कनेक्ट करने के लिए TLS की आवश्यकता होती है। हालांकि, हेरोकू समर्थन ने समझाया कि वे राउटर स्तर से स्व-हस्ताक्षरित प्रमाणपत्रों को शामिल करने वाले एप्लिकेशन स्तर तक अनुरोधों का प्रबंधन करते हैं। पता चला, हेरोकू राउटर स्तर पर एसएसएल को समाप्त कर देता है और अनुरोध वहां से HTTP के माध्यम से आवेदन में भेज दिए जाते हैं, जबकि सब कुछ हेरोकू के फ़ायरवॉल और सुरक्षा उपायों के पीछे है।
स्रोत
- https://ogirginc.github.io/en/heroku-redis-ssl-error
- https://devcenter.heroku.com/articles/securing-heroku-redis#connecting-directly-to-stunnel