Порт SSL для веб-сайта Azure, использующий node.js?
У меня возникают трудности с развертыванием приложения node.js в качестве веб-сайта Azure для прослушивания соответствующего порта для SSL (в среде Azure).
Обслуживание запросов SSL в любой другой среде, где у меня есть контроль над портом, не проблема и работает нормально. Я не считаю, что это проблема с кодом приложения (используя Express, FYI).
Веб-сайты Azure, по-видимому, перенаправляют трафик порта 80 с балансировщика нагрузки на любой доступный порт, который установлен в process.env.PORT
переменная.
Я не вижу никакого соответствующего эквивалента в process.env
для трафика SSL, несмотря на успешную загрузку сертификата на портал Azure для данного веб-сайта и настройку его привязок.
У меня такой вопрос: как я могу настроить Azure, чтобы он выдавал необходимый дескриптор файла для трафика через порт 443?
Я немного читал о том, как настроить работника в облачной службе, но он не подходит для веб-сайта.
Для справки, когда я пытаюсь слушать либо 443
или же process.env.PORT
Я получаю следующую ошибку:
Application has thrown an uncaught exception and is terminated:
Error: listen EACCES
at errnoException (net.js:901:11)
at Server._listen2 (net.js:1039:14)
at listen (net.js:1061:10)
at Server.listen (net.js:1127:5)
1 ответ
Я предполагаю, что вы читали http://www.windowsazure.com/en-us/develop/net/common-tasks/enable-ssl/
Если я правильно понимаю, Azure выполнит https-завершение для вас. Ваше приложение / служба по-прежнему получает http-трафик.
Несмотря на это, вам все равно нужно слушать process.env.PORT
, Всегда. И всегда будет получать http трафик там (не https). Если исходный клиент использовал порт 80, Azure просто передаст его вам. Если клиент использовал 443, Azure завершит https и откроет вам http-запрос.