Tomcat 7:自动将https请求重定向到端口8443

tomcat7上,我们的Web应用程序正在通过端口运行https,8443并且工作正常,除了无法将https默认端口(443)重定向至,8443因此,每当我们必须访问URL时,URL中都必须包含“:8443”应用。我包括了server.xml文件的某些部分。为了能够加载我们的页面而不必在URL中输入端口信息,应该怎么做?

 <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" />

回答:

我在使用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配置方面的专家,因此请在修改生产环境中的任何现有配置之前与sysadmins进行验证。

以上是 Tomcat 7:自动将https请求重定向到端口8443 的全部内容, 来源链接: utcz.com/qa/419123.html

回到顶部