Покрытие LetsEncrypt на разных портах

Итак, у меня есть сервер Apache, работающий через порт 443, и NodeJS, установленный в последней версии Ubuntu. Теперь у меня все работает отлично, за исключением того, что на порту, на котором запущен мой сервер NodeJS, порт 100, нет SSL.

Когда я переключаю его на порт 80 и запускаю сервер через sudo, это дает ошибку, поэтому я, конечно, не могу этого сделать. Есть ли какое-либо решение, позволяющее иметь покрытие LetsEncrypt SSL на портах, отличных от 443 и 80?

2 ответа

Порт 80 является стандартным портом для http (без шифрования).

Порт 443 является стандартным портом для https (с шифрованием).

Под стандартным портом я подразумеваю, что веб-браузеры знают об этих портах и ​​поэтому не ожидают, что вы явно дадите порт. Таким образом, https://www.example.com/ и https://www.example.com/ одинаковы, но поскольку вы используете стандартный порт, нет необходимости включать часть:443, так как браузер сделает это для вы.

Вы можете использовать SSL на любом порту, так как он полностью независим от порта, хотя существуют эти стандартные соглашения. Обычно у вас никогда не будет SSL на порте 80, например, так как это нарушит эти соглашения.

Поэтому, если вы хотите использовать службу NodeJS через порт 100, тогда вы можете, но вам необходимо явно указать этот порт в URL-адресе, а также в протоколе https.

LetsEncrypt не заботится о том, какой порт вы используете (за исключением части проверки, где он помещает файл в место, доступное для связи с внешним миром, чтобы доказать, что вы владеете доменом и ключом - это то, о чем вы здесь говорите?). Таким образом, вы можете использовать один и тот же сертификат для Apache и NodeJ.

Лучшим решением было бы использовать стандартные порты и ProxyPass для службы узлов от Apache (часто как обычный http, но также может быть https, если хотите): Apache и Node.js на одном сервере. Таким образом, Apache прослушивает порт 80 (перенаправление на порт 443) и порт 443, а служба узла доступна только через Apache.

Вы можете использовать SSL на другом порту, просто убедитесь, что вы разрешите его на брандмауэре

sudo ufw allow [port number]
Другие вопросы по тегам