我在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,但没有用。
1条答案
按热度按时间n3schb8v1#
如果您有“在途加密”,即如果您的群集启用了SSL,则需要在开始时使用不同的端点和
master
。根据文件:
未启用传输中加密clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port
...
启用了在途加密master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port