Назад | Перейти на главную страницу

Безопасно ли передавать мои ssl-ключи и файлы сертификатов в socket.io?

Я создаю веб-чат с помощью socket.io

Чтобы общаться через порт 3000 через https, мне нужно передать мои 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);

Это код, который вы используете в своей собственной системе. Если вы ему не доверяете, не давайте ему доступа к секретам. Если вы ему доверяете, то вперед.

Если не считать оплаты полного аудита безопасности кода, с этим мало что можно поделать. Вы должны учитывать, что да, хотя ваш ключ TLS действительно секретный, вероятно, это не единственная личная информация, которую вы будете доверять этому коду. Вы доверяете ему управлять все правильно ваших данных, а не только вашего ключа?

Короче говоря, только вы можете определить, доверяете ли вы коду socket.io достаточно, чтобы предоставить ему доступ к секретной информации.


Если вы решите, что не доверяете socket.io свои секреты, возможно, вы могли бы использовать nginx в качестве обратного прокси перед socket.io, и nginx может обрабатывать завершение TLS. Конечно, тогда вам нужно задать вопрос: доверяете ли вы nginx?