Назад | Перейти на главную страницу

Конфигурация https Tomcat 9.0.36 на порт 8443 не отвечает

У меня Tomcat 9.0.36 работает на виртуальной машине Ubuntu 18.04.4 LTS. Я пытаюсь настроить его на использование сертификата, полученного от центра сертификации. Я успешно сгенерировал файл хранилища ключей с помощью keytool и попытался настроить Tomcat для прослушивания порта 8443 для трафика https.

Соответствующие поля в server.xms:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

<Connector port="8443" protocol="HTTP/1.1" maxThreads="100"
       scheme="https" secure="true"
       SSLEnabled="true"
       clientAuth="false"
       sslProtocol="TLS"
       keyAlias="correctAlias"
       keystoreFile="/usr/lib/jvm/jdk-12.0.2/lib/security/keystorefile.jks"
       keystorePass="correctPassWord" />

Я пробовал использовать несколько конфигураций обоих портов (с или без redirectPort = ..., закомментировал другой порт и т. Д.), И конечный результат был таким же. На порту 8080 все работает нормально (при включенном коннекторе), но на 8443 результат такой:

This site can’t be reached {my ip} took too long to respond. 

netstat -plnt дает следующее:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         
tcp   0  0 0.0.0.0:8080    0.0.0.0:*       LISTEN      22748/java
tcp   0  0 0.0.0.0:8443    0.0.0.0:*       LISTEN      22748/java
...

Итак, я предполагаю, что есть что-то, что мешает серверу отвечать, поскольку catalina.out не выдает никаких ошибок, только информация о запуске, о том, что http-nio-8080 и http-jsse-nio-8443 были запущены, и все, похоже, бег.

Я стремлюсь к тому, чтобы в конечном результате все перенаправлялось на протокол https, и ничего не было незашифрованным.

Похоже, что в нашей сети происходило что-то интересное, поэтому я направил порт 443 на 8443, используя

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443

Кажется, это работает. В конце концов, это было то, что я все равно искал, поэтому мне удалось решить сразу две проблемы.

Убедитесь, что порт (8443) разрешен или открыт для вашего IP-адреса.

Так что эта связь может достигать внешнего мира.