Может ли сервер Node.js, обслуживающий приложение по HTTPS, запускаться от имени пользователя без полномочий root? Проблема в том, что, похоже, нет возможности запустить сценарий вроде этот без sudo, поскольку он должен иметь доступ к сертификатам.
Я знаю, что после запуска Node можно отказаться от привилегий root, но я бы хотел по возможности избежать этого, поскольку это может привести к неожиданному поведению.
Проблема с сертификатами легко решается, просто покажите их своему пользователю и соответствующим образом измените разрешения.
Однако вы обнаружите, что вы не можете заставить свой сервер прослушивать порт HTTPS, 443, поскольку он является привилегированным (<1024).
Однако вы можете решить эту проблему разными способами, например:
Обратный прокси-сервер впереди (Apache / nginx), перенаправляющий запросы на nodejs, прослушивая порт более высокого уровня
Перенаправление портов 443 -> 1443 (или любой порт выше 1024) и nodejs, прослушивающие 1443
Использование возможностей Linux (CAP_NET_ADMIN IIRC).
Наверное, есть и другие способы.