Запуск стрельбы по https?
У нас есть несколько настроек Django, которые проходят через прокси-сервер (Apache и Nginx), которые в конечном итоге попадают в реальную среду выполнения Django.
Нам нужно, чтобы HTTPS заканчивался, даже когда он был в нашей сети. Мы пересматриваем Gunicorn из-за его успехов и производительности в наших других настройках, но для тестирования с HTTPS нужно согласовать их последовательно.
Наша топология такова:
https://foo.com → [Public face proxy] → (https) → [внутренний сервер https://192...:8001]
Как настроить Gunicorn для прослушивания на HTTPS с самоподписанным сертификатом?
Ответы
Ответ 1
Gunicorn теперь поддерживает SSL, начиная с версии 17.0. Вы можете настроить его для прослушивания на https следующим образом:
$ gunicorn --certfile=server.crt --keyfile=server.key test:app
Если вы использовали --bind
для прослушивания на порту 80, не забудьте изменить порт на 443 (порт по умолчанию для соединений HTTPS). Например:
$ gunicorn --certfile=server.crt --keyfile=server.key --bind 0.0.0.0:443 test:app
Ответ 2
Массовый поздний ответ, но для других, кто сталкивается с этим, существует еще одна опция, использующая nginx в качестве "[Public front proxy]" выше.
Настройте nginx для обработки входящего SSL-трафика на порте 443, а затем proxy_pass для пушки в внутреннем порту. Внешний трафик зашифрован, и трафик между nginx и gunicorn не открывается в любом случае. Я считаю, что это очень простое управление.