Открытый порт 443 для веб-приложения узла

Я пытался запустить веб-приложение узла на порте 443, но я получаю эту ошибку на выходе: послушайте EACCES 0.0.0.0:443

Уже попробованные ufw позволяют 443/tcp, но nmap все еще не показывает 443 открытым портом.

Также попробованные sudo iptables-A ВВОДЯТ-p tcp - dport 443-j ПРИНИМАЕТ w/никакой успех.

Любая справка будет цениться.

2
задан 20 October 2016 в 09:57

2 ответа

Спасибо @exore, я решил проблему с

sudo setcap 'cap_net_bind_service = + ep' $ (readlink-f $ (который узел))

, проблема была, я верю, ручная установка node.js. Это стало значением по умолчанию на последней версии Ubuntu, но я не сделал знал, что и я установил его снова через терминал.

можно пойти сюда для всего обсуждения.

https://gist.github.com/firstdoit/6389682

С уважением,

2
ответ дан 2 December 2019 в 03:44

EACCES означает, что запрещается послушать на порте 443. Это вызвано тем, что Вы не запускаете свое приложение как корень. Порты ниже 1024 являются зарезервированными портами и только базируются, может использовать их.

Попытка изменить правила брандмауэра не имеет никакого эффекта. брандмауэр позволил пакету пройти или остановить их. Это не позволяет кому-то слушать какой-то конкретный порт.

Решение: выполните свой код с sudo., но это - угроза безопасности. Таким образом, Ваше приложение должно переключиться на другого пользователя (или найти некоторый другой механизм, о котором я не знаю для отбрасывания полномочий), как можно скорее, сразу после того, как успешные слушают.

, Так как это сложно, хорошее решение

  • , Ваше приложение слушает на петлевом интерфейсе на не привилегированном порте, говорит, например, 127.0.0.1:10443
  • , Вы устанавливаете веб-сервер для проксирования запросов от 0:443 до 127.0.0.1:10443. nginx приходят на ум, но много других серверов применимы для этой задачи. Просто выберите свой любимый.

, Если Вы хотите SSL на порте 443, который обычно имеет место, необходимо также установить сертификаты (создайте сам, подписался один, или купите один или лучше все еще, получите бесплатный сертификат от, давайте зашифруем), настройте протоколы, доступные шифры и т.д... Это также сложно.

пример минимальный nginx файл конфигурации, который нужен в улучшении и должен работать (не может протестировать прямо сейчас): server { server_name me.example.com; listen 0.0.0.0:443 ssl; ssl_certificate /etc/mycerts/fullchain.pem; ssl_certificate_key /etc/mycerts/privkey.pem; ssl_session_timeout 30m; ssl_session_cache shared:SSL:400k; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; server_tokens off; charset utf-8; location / { proxy_pass http://127.0.0.1:10443/; } }

0
ответ дан 2 December 2019 в 03:44

Другие вопросы по тегам:

Похожие вопросы: