10

在tomcat7上,我们的 web 应用程序通过端口上的 https 运行并且8443工作正常,除了我们无法将 https 默认端口(应用。我包含了我们的 server.xml 文件的一些部分。为了能够加载我们的页面而不必在 URL 中输入端口信息,应该怎么做?4438443

 <Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           enableLookups="false"
           redirectPort="8443" />

<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           enableLookups="false"
           redirectPort="8443" />

<Connector port="443" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           enableLookups="false"
           redirectPort="8443" />
...

<Connector port="8443"
            maxHttpHeaderSize="65536"
            scheme="https"
            secure="true"
            SSLEnabled="true"
            clientAuth="false"
            enableLookups="true"
            acceptCount="100"
            disableUploadTimeout="true"
            maxThreads="200"
            sslProtocol="TLS"
            keystoreFile="/toto/has/a/certificate.jks"
            keystorePass="totohasapassword"
            protocol="org.apache.coyote.http11.Http11NioProtocol" />
4

1 回答 1

18

我使用 iptables 在 coderanch 上找到了一个简单的解决方案:http: //coderanch.com/t/601907/Tomcat/SSL-work

这是要输入的行:

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

新编辑

这是我现在的完整答案。我们之前的答案有问题,因为当我们从 http 调用 url 时,重定向没问题,但总是在末尾添加 ':8443',这不是很好。

所以就 iptable 而言,这是我们写的:

sudo iptables -t nat -I PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080
sudo iptables -t nat -A OUTPUT -p tcp -d <your_ip_address>,<your_ip_address>  --dport 80 -j  REDIRECT --to-port 8080
sudo iptables -t nat -I PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 8443

现在同样重要的是在 tomcat conf 文件server.xml中添加重定向:

<Connector port="8080"
           enableLookups="false"
           redirectPort="443" />

<Connector port="443" protocol="HTTP/1.1"
           enableLookups="false"
           redirectPort="8443" />

就是这样,重新启动tomcat,一切都应该工作。我不是 iptable 配置方面的专家,因此请在修改生产中的任何现有配置之前与系统管理员进行验证。

于 2014-07-14T18:33:38.590 回答