让我解释一下我的情况。
目前,我在Tomcat 6上运行了很多应用程序,默认端口为8080。
我刚刚创建了一些需要登录的应用程序。我将购买一个SSL证书以便在此服务器上安装。
我不喜欢使用端口8443的想法,因为它使URL更复杂。 如果我在端口80上运行Tomcat,我必须更改几十个链接,我必须以root身份运行Tomcat(而不是tomcat)。
在端口8080上运行不安全的应用程序但是在端口443上安全运行是否有任何问题?
我想我的设置会有如下所示的网址:
这可能吗?
答案 0 :(得分:37)
在8080上设置HTTP连接器,在8443上设置HTTPS连接器。在<Connector>
声明中添加proxyPort
属性并将其设置为默认HTTP和HTTPS端口(分别为80和443)。将防火墙重定向规则设置为80到8080以及443到8443.然后,服务器将接受常规的http和https URL,而无需指定端口号。
以下是这些连接器的示例声明。
<Connector
maxSpareThreads='75'
port='8080'
proxyPort='80'
enableLookups='false'
maxThreads='150'
connectionTimeout='20000'
disableUploadTimeout='true'
minSpareThreads='5'
maxHttpHeaderSize='8192'
redirectPort='443'
acceptCount='200'
/>
<Connector
SSLEnabled='true'
keystoreFile='/path/to/keystore.jks'
maxSpareThreads='75'
port='8443'
proxyPort='443'
algorithm='SunX509'
enableLookups='false'
secure='true'
maxThreads='150'
connectionTimeout='20000'
disableUploadTimeout='true'
scheme='https'
minSpareThreads='5'
maxHttpHeaderSize='8192'
sslProtocol='SSL'
acceptCount='200'
clientAuth='false'
/>
以下是一些重定向IPTABLES命令:
# Redirect external packets
-A PREROUTING -j NAT-Port-Redirect
# redirect http traffic
-A NAT-Port-Redirect -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
# redirect https traffic
-A NAT-Port-Redirect -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
答案 1 :(得分:5)
是的,完全没问题。只需配置连接器即可使用相应的端口。但是对于443我猜测根也是必需的。