将我的 SSL 密钥和证书文件传递给 socket.io 安全吗?

将我的 SSL 密钥和证书文件传递给 socket.io 安全吗?

我正在使用 socket.io 建立一个网络聊天

为了通过 https 在端口 3000 上进行通信,我需要传递我的 ssl 密钥和证书文件。

Socket.io 是开源的,我不知道允许它访问我的证书和密钥文件等安全文件有多可信。

以下是来自 socket.io 的代码,由 nodeJS 在服务器端运行:

var fs = require('fs');
var https = require('https');

var express = require('express');
var app = express();

var options = {
  key: fs.readFileSync('../chat/file.pem'),
  cert: fs.readFileSync('../chat/file.crt')
};

var server = https.createServer(options, app);
var io = require('socket.io')(server);

答案1

这是您在自己的系统上运行的代码。如果您不信任它,则不要授予它访问机密的权限。如果您信任它,则继续。

除了花钱对代码进行全面安全审计外,你对此无能为力。你应该考虑一下,是的,虽然你的 TLS 密钥确实是秘密的,但它可能不是你将委托给此代码的唯一私人信息。你信任它来管理全部您的数据是否正确,而不仅仅是您的密钥?

简而言之,只有您可以确定是否足够信任 socket.io 代码以允许其访问秘密信息。


如果您决定不信任 socket.io 来保护您的机密,那么也许您可以在 socket.io 前面使用 nginx 作为反向代理,并且 nginx 可以处理 TLS 终止。当然,您需要问一个问题:您信任 nginx 吗?

相关内容