0

Predis クライアント (PHP Redis) を SSL 経由で 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 ハンドルの作成に失敗しました。

問題は、SSL 経由で接続するように node.js で Predis と Redis を構成する方法です。

PS。このバージョンの Predis ライブラリを使用します: https://github.com/RedisLabs/predisおよびブランチ: ssl。

4

0 に答える 0