如何通过SSL将Predis与node.js连接起来

时间:2015-01-16 22:54:20

标签: php ssl redis predis

我想通过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和branch:ssl。

0 个答案:

没有答案