Подтвердить что ты не робот

Создание безопасного (TLS/SSL) веб-сервера

Я использую WS websocket библиотеку node.js. В настоящее время я запускаю сервер ws. Теперь я хочу защитить это соединение, используя безопасные подключения, то есть путем реализации протокола wss, а также поддержки TLS в библиотеке. Я немного искал и нашел эту равнину для защиты: wss и wss с самоподписанным сертификатом.

Оба не очень подробные, и статья о второй ссылке описывает wss с самоподписанным сертификатом. Я хочу знать, достаточно ли просто создать самоподписанный сертификат и развернуть его в моей производственной среде или мне нужно купить сертификат, который нам нужно делать при создании серверов HTTPS?

4b9b3361

Ответ 1

Ваш вопрос № 1

Как создать безопасный (TLS/SSL) веб-сервер?

Я нашел ваш вопрос во время поиска в Интернете для руководства о том, как заставить веб-сайты работать над защищенным подключением. Поскольку это произошло в результатах поиска, есть шанс, что я не единственный, кто попал на эту страницу. Чтобы спасти всех (включая будущее меня) некоторое время, здесь идет.

Проблема

У меня был простой сервер node.js websocket, приведенный в действие einaros/ws, прослушивающий порт 80 по незащищенному соединению. Пришлось переключить его на безопасное соединение.

Решение

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

  • Мне нужны файлы .pem для этого, но все, что я получил от поставщика сертификатов, было простым файлом .crt/.cert, и у меня также был закрытый .key, который я получил после создания начальный .csr запрос. Итак здесь, как конвертировать (кредит в slf):

    openssl rsa -in server.key -text > private.pem
    openssl x509 -inform PEM -in server.crt > public.pem
    
  • Мне было непонятно, как сделать ws использование защищенного соединения. Поскольку я пытался добавить SSL в существующее приложение, я хотел избежать необходимости повторять действия. Оказывается, все, что мне нужно было сделать, это заменить параметр {port:80} ссылкой на экземпляр https (см. Ссылки для получения дополнительной информации о том, как его инициализировать).

    var ws = require('ws').Server;
    var wss = new ws({
        server: httpsServer
    });
    

Ссылки

Ваш вопрос № 2

Что я хочу знать, так это достаточно, чтобы просто создать сам подписанный сертификат и развернуть его в моей производственной среде, или мне нужно купить сертификат как нам нужно делать при создании серверов HTTPS?

Акцент мой. Да, я бы посоветовал вам купить сертификат у доверенного органа. Это гарантирует, что ваши пользователи не получат никаких предупреждений о безопасности браузера, или просто уйдут, даже не зная, что пошло не так.