Можно/целесообразна ли регистрация и продление Let's Encrypt
сертификат через Nginx для https и поделиться этим же сертификатом
при подключении через веб-сокет (wss://) в том же домене? Веб-сокет
сервер работает с node.js (если быть точным, Colyseus - который
имеет встроенный экспресс)
Возможно, но не рекомендуется: рекомендуемый подход — использовать стандартный веб-сервер в качестве обратного прокси-сервера, и номер один среди них — nginx на момент этого ответа. Однако haproxy также может выступать в качестве одного из них.
Если нет, то стоит ли устанавливать Nginx в качестве обратного прокси-сервера перед сервером веб-сокетов и устанавливать таким образом сертификаты?
Да, это рекомендуемый подход. Потому что, опять же, вы обычно не запускаете специальные приложения, привязанные к порту HTTP/HTTPS напрямую: это запрещает вам использовать различные типы важных функций. Одним из них является бесшовная перезагрузка при обновлении сертификата.
И, наконец, если использовать один сертификат и поделиться им с сервером веб-сокетов — это хорошая идея, как лучше всего заставить Express перезагружать файлы, когда certbot обновляет сертификат?
В основном вы просто бежите certbot возобновить
(кронд запускает его для вас) и просто скажите nginx обновить его с помощью nginx -s перезагрузить
.
Может ли certbot сообщить серверу, что он обновил сертификаты?
Я об этом не в курсе, но этот механизм все равно особо не нужен - с LE-сертификатами это должно происходить только раз в 3 месяца, так что...
Или файлы вообще нужно перезагружать?
Конечно, они делают. Как же их не быть - они загружаются только один раз при старте веб-сервера.