如何在 HTTPS 和 80 端口下运行 Tomcat?

5
我正在尝试在Centos + tomcat7上托管网站,如果我在端口80上运行tomcat7,则一切都正常,即74.208.164.45,但是如果我想要使用https://74.208.164.45/ 访问它,则不起作用,但是如果我像这样尝试https://74.208.164.45:8443/(添加密钥库),那么它就可以正常工作。
因此,我需要一种方法在80和https上运行tomcat,即https://74.208.164.45/ 应该在端口80上正常工作。 现在,我只是在尝试Tomcat,但如果完全不可能,那么我可以使用一些Apache http服务器使用AJP连接器重定向到Tomcat,但那是我最后选择的事情。 另外,我们能否通过IPTables做些什么?

我不是HTTP专家,但端口80是HTTP流量的默认端口,HTTPS是443。我想你的路由器应该能够将443重定向到适当的机器。也许是防火墙阻止了连接。你知道443端口是否开放吗? - Admiral Noisey Bottom
将Tomcat conf目录中的server.xml更改为使用445代替8443。 - uday
为什么 443 端口没有打开?它已经被占用了还是被防火墙关闭了或者其他原因? - Admiral Noisey Bottom
这是XML配置文件:<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="xxxxxx" keystorePass="xxxxx"/> - Subhasish Dash
感谢大家的帮助,我非常感激。 - Subhasish Dash
显示剩余6条评论
2个回答

5

您需要在server.xml中将https的连接器端口从默认值“8443”更改为“443”。

默认情况下,它看起来像这样:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />

请参阅Tomcat文档中的SSL/TLS配置指南了解如何设置SSL。

1
这可能是在server.xml中的完整格式。
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"  keystoreFile="/.keystore" keystorePass="Pa$$W0rd" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接