2

我正在尝试保护 Node Redis IPC 服务器以使用私钥/公钥。我遵循了本教程,该教程使用stunnel将 Redis 使用的隧道包装在 SSL 层下。

该示例不适用于 Node,但它确实保护了连接,如果我在配置文件中包含认证,我只能连接到服务器,否则连接会被重置。

但是,我不能用 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配置文件中包含认证,这两个设备都会进行通信。如何确保此连接安全?

干杯

4

2 回答 2

11

您可以通过在创建客户端时传入 tls 配置来做到这一点

var redis = require("redis");

var client = redis.createClient(6380,'location.of.server', {auth_pass: 'password', tls: {servername: 'location.of.server'}});
于 2016-11-11T09:38:19.473 回答
-5

我也搜索过这个。但是 redis 不需要任何 ssl,因为 in 仅在经过验证的专用网络上运行。使用 stunnel 提供安全性的唯一方法。因为我们可以使用 AUTH 命令启用密码。在 redis 中,他们提供了一个名为 GPG 密钥的密码生成器。它生成了一个 2048 长度的密钥,它将提供安全性。我认为我的回答是相关的。

于 2016-05-03T07:00:55.877 回答