redis 当我尝试从rails应用程序连接到elasticache端点时,我得到了“SSL_connect错误的版本号(OpenSSL::SSL::SSLError)”

roejwanj  于 2023-10-15  发布在  Redis
关注(0)|答案(1)|浏览(128)

我在elasticache中有一个redis集群,它启用了集群模式。我按照这里解释的步骤测试连接https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/GettingStarted.ConnectToCacheNode.html,我的ec2示例和redis集群之间的连接工作正常。当我尝试将用户连接到rails应用程序的通道时,问题就出现了。创建连接时,将引发此异常

<Thread:0x 0000 ffff 7152 d840/usr/local/bundle/gems/actioncable-7.0.7/lib/action_cable/subscription_adapter/redis.rb:160 run>因异常终止(report_on_exception为true):/usr/local/bundle/gems/redis-4.8.1/lib/redis/connection/ruby.rb:264:in `connect_nonblock ':SSL_connect returned=1 errno=0 peeraddr=172.31.6.145:6379 state=error:错误的版本号(OpenSSL::SSL::SSLError)

这是我在我的配置/电缆

development:
  adapter: redis
  ssl: true
  url: <%= ENV.fetch("REDIS_URL") %>
  channel_prefix: my_app_backend_development

在我.env中,
REDIS_URL=rediss://my-app-staging-web-sockets-cluster.lvng.clustercfg.use2.cache.amazonaws.com:6379这是我拥有的宝石的版本

gem list | grep openssl
# openssl (default: 3.1.0)

gem list | grep redis
# redis (4.8.1)

当我运行

openssl version
# OpenSSL 3.0.9 30 May 2023 (Library: OpenSSL 3.0.9 30 May 2023)

在elasticache服务中,我使用的是redis 7.0.7版本,节点类型为cache.t2.micro
我试过更新openssl gem和redis gem,但没有用。

n3schb8v

n3schb8v1#

如果您有“在途加密”,即如果您的群集启用了SSL,则需要在开始时使用不同的端点和master
根据文件:
未启用传输中加密clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port
...
启用了在途加密master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port

相关问题