我在运行tomcat 7的ec2实例上提供内容。我在tomcat配置中将所有流量路由都路由到8443,并安装了有效证书。当我显式放置https://website.com:443时,该站点可以很好地加载,但是当我放置http://website.com时,它应使用端口443路由到https,但它使用的是端口8443。有人知道为什么会这样吗?我在另一台服务器上有完全相同的配置,但是我有两个不想表现出来的新服务器。
在我的tomcat server.xml中,我有:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,
TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"
keystoreFile="conf/cert.p12"
keystorePass="password"
keystoreType="PKCS12" />
并在web.xml中:
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Context</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<!-- auth-constraint goes here if you requre authentication -->
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
最佳答案
找到了答案,原来我必须将TCP上的所有流量从8443路由到8443。客户端正在请求端口80,根据我的负载均衡器配置路由到8080,以供tomcat提供内容,tomcat将请求转换为请求端口8443。
8443并没有路由回tomcat服务器上的8443,因此它最终陷入了死胡同。希望有一天能对别人有所帮助。