2015-08-11 4 views
0

Я пытаюсь защитить IPC-сервер Node Redis для использования частного/открытого ключа. Я следил за this tutorial, который использует stunnel, который обертывает туннель, используемый Redis под слоем SSL.Защищающий узел Redis

Пример не для узла, но он защищает соединение, и я могу подключиться только к серверу, если включить сертификацию в свой файл конфигурации, иначе соединение будет сброшено.

Однако я не могу повторить это с помощью NodeJS. На моем компьютере-сервере, у меня есть:

var redis = require('redis'); 
var client = redis.createClient(); 

client.auth('myPassword'); 
client.publish('instances', 'start'); 

А мой на моем компьютере клиента у меня есть:

var redis = require('redis'); 
var client = redis.createClient(); 

client.auth('myPassword'); 
client.subscribe('instances'); 
client.on('message', function (channel, message) { 
    console.log("Got message " + message + " from channel " + channel); 
}) 

Но эти два устройства обмениваются данными, включают ли я или нет сертификации в моем файле stunnel конфигурации. Как я могу защитить это соединение?

Cheers

+0

Вероятно, вы выставили незащищенный порт на сервере и подключен к тому, что с клиентом. Вам необходимо отключить подключения к незащищенному порту на сервере. –

ответ

1

Вы можете сделать это путем передачи в конфигурации Tls при создании клиента как так

var redis = require("redis"); 

var client = redis.createClient(6380,'location.of.server', {auth_pass: 'password', tls: {servername: 'location.of.server'}}); 
0

Я также искал это. Но redis не нуждается в каком-либо ssl, поскольку работает только в проверенных частных сетях. Единственный способ обеспечить безопасность с помощью stunnel. Поскольку мы можем включить пароль с помощью команды AUTH. В redis они предоставили генератор паролей, который называется GPG-ключом. Который сгенерировал ключ длиной 2048, который обеспечит безопасность. Я думаю, что мой ответ уместен.

Смежные вопросы