我试图保护Node Redis IPC服务器使用私钥/公钥。我跟着this tutorial使用了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
配置文件中包含认证,这两个设备都会进行通信。如何保证此连接?
干杯
答案 0 :(得分:4)
您可以通过在创建客户端时传递tls配置来完成此操作
var redis = require("redis");
var client = redis.createClient(6380,'location.of.server', {auth_pass: 'password', tls: {servername: 'location.of.server'}});
答案 1 :(得分:-4)
我也搜索过这个。但redis并不需要任何ssl,因为只在经过验证的专用网络上运行。使用stunnel提供安全性的唯一方法。因为我们可以使用AUTH命令启用密码。在redis中,他们提供了一个名为GPG密钥的密码生成器。这产生了一个2048长度的密钥,它将提供安全性。我认为我的答案是相关的。