У меня есть 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.
РЕДАКТИРОВАТЬ: запрос 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