【发布时间】:2019-02-25 05:13:36
【问题描述】:
我正在尝试使用 ioRedis 从节点脚本连接到在传输过程中加密的 ElastiCache 集群。有时我的脚本有效,有时我得到Error: 140736319218624:error:140940E5:SSL routines:ssl3_read_bytes:ssl handshake failure:../deps/openssl/openssl/ssl/s3_pkt.c:1216:
这是我所有的代码:
var Redis = require('ioredis');
var nodes = [{
host: 'clustercfg.name.xxxxxx.region.cache.amazonaws.com',
port: '6379',
}];
var cluster = new Redis.Cluster(nodes,{
redisOptions: {
tls: {}
}});
cluster.set('aws', 'test');
cluster.get('aws', function (err, res) {
console.log(res);
if (err) {
console.error(err)
}
cluster.disconnect()
});
【问题讨论】:
-
“ssl 握手失败”可能是很多事情。如果双方没有更多的日志记录,将很难进行调试。可能是主机名有时会解析为不同的 IP 地址,而您访问的是不同的服务器?
-
对方是AWS托管的ElastiCache服务,所以我无权访问对方的ssl配置。
标签: node.js ssl redis amazon-elasticache ioredis