AWS Соединение отклонено от publi c ip при использовании https - PullRequest
0 голосов
/ 09 января 2020

У меня есть python - flask веб-приложение, работающее в docker на экземпляре AWS EC2. Я использую python -sslify для принудительной установки https, но получаю сообщение «Отказано в соединении». Я удостоверился, что порт 80 был открыт во входящих правилах группы безопасности, и открыл порт 443. Если я выключаю sslify, все работает нормально, но не защищено. С включенным sslify я получаю следующее:

$ curl https://localhost
curl: (35) gnutls_handshake() failed: The TLS connection was non-properly terminated.
$ curl https://ec2-**-**-***-***.compute-1.amazonaws.com/login
curl: (7) Failed to connect to ec2-**-**-***-***.compute-1.amazonaws.com port 443: Connection refused

Насколько я могу судить, ошибка gnutls_handshake - это проблема со старой версией curl, поэтому я пришел к выводу, что она работает правильно, просто не открыта для целое rnet. Просмотр выходных данных отладки сервера. Я вижу, что подключается, получает перенаправление 302 на https, но это так. Порт 80 определенно открыт и работает нормально, порт 443 - нет, и я не уверен, почему. Есть ли где-то еще мне нужно открыть порт 443, кроме правил входящей группы безопасности?

Вот правила входящей, кстати. Кроме того, сервер работает на 0.0.0.0:8000 в docker с открытыми портами 80, 443 и 8000. Inbound Rules

РЕДАКТИРОВАТЬ: запрос te lnet 443:

$ telnet localhost 443
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
$ telnet ec2-**-**-***-***.compute-1.amazonaws.com 443
Trying **-**-***-***...
telnet: Unable to connect to remote host: Connection refused

РЕДАКТИРОВАТЬ 2: Тест Netstat:

$ netstat -a -n -t | grep ':443.*LISTEN'
tcp6       0      0 :::443                  :::*                    LISTEN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...