Я хочу подключить свой Predis Client (PHP Redis) к node.js через SSL. Это уже работает только по 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,
));
Я попытался с ‘схема’ => sslv3 и TLS — ошибки были идентичны.
При ‘схема’ => sslv2 — ошибка была: stream_socket_client (): не удалось создать дескриптор SSL.
Вопрос в том, как настроить Predis и Redis на node.js для подключения по SSL?
PS. Я использую эту версию библиотеки Predis: https://github.com/RedisLabs/predis и филиал: ссл.
Задача ещё не решена.
Других решений пока нет …