Tomcat 9.0.36 https 配置到端口 8443 没有响应

Tomcat 9.0.36 https 配置到端口 8443 没有响应

我在 Ubuntu 18.04.4 LTS(虚拟)机器上运行着 Tomcat 9.0.36。我正在尝试将其配置为使用从 CA 获得的证书。我使用 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 协议,并且没有任何内容未加密。

答案1

确保您的 IP 地址允许或打开端口 (8443)。

这样,外界就可以实现这种连接。

答案2

看来我们的网络中发生了一些有趣的事情,所以我最终使用以下方法将端口 443 路由到 8443:

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

这似乎有效。最终,无论如何,这都是我想要的,所以我设法同时解决了两个问题。

相关内容