0

我想通过 SSL 将我的 Predis 客户端(PHP Redis)与 node.js 连接起来。它已经在 TCP 上工作了。所以我扩展了我的 Predis 配置:

$redis = new Predis\Client(array(
     'timeout' => 5.0,
     'throw_errors' => true,
     'scheme' => 'ssl',
     'host' => REDIS_HOST, //6379
     'port' => REDIS_PORT,
     'ssl'    => ['local_cert' => APP.'libs/cert.pem'],
 ));

而且我不会更改 Redis node.js 配置:

var redis = require('redis');

var rClient = redis.createClient();
rClient.subscribe('channel');

当我尝试通过 SSL 连接时出现此类错误:

stream_socket_client(): SSL: crypto enabling timeout
stream_socket_client(): Failed to enable crypto
stream_socket_client(): unable to connect to ssl://111.111.111.111:6379 (Unknown error)

此连接适用于此类配置(无 SSL):

$redis = new Predis\Client(array(
         'timeout' => 5.0,
         'throw_errors' => true,
         'scheme' => 'tcp',
         'host' => REDIS_HOST, //6379
         'port' => REDIS_PORT,
));

我尝试过使用 'scheme' => sslv3 和 tls - 错误是相同的。使用 'scheme' => sslv2 - 错误是:stream_socket_client(): 未能创建 SSL 句柄。

问题是:如何在 node.js 上配置 Predis 和 Redis 以通过 SSL 连接?

PS。我使用这个版本的 Predis 库:https ://github.com/RedisLabs/predis和分支:ssl。

4

0 回答 0