在tomcat7上,我们的web应用程序在端口8443上通过https运行,工作正常,只是我们无法将https默认端口(443)重定向到8443,因此每当我们必须访问应用程序时,都必须在8443中包含':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" />发布于 2014-07-15 02:33:39
我使用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进行验证。
https://stackoverflow.com/questions/24736543
复制相似问题