我试图强制连接到http://localhost:8443到https://localhost:8443 。 如果他们转到https://localhost:8443则该网站正常工作。 如果用户忘记在https我想要tomcat纠正它。
我只有一个https连接器,定义如下:
<Connector port="8443" rediretPort="8443" protocol="HTTP/1.1" connectionTimeout="20000" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keyAlias="alias" keystoreFile="keystore.jks" keypass="PASSWORD" />
这是在Windows服务器上。 Tomcat 6是一个独立的服务器(不连接到IIS)。
我试图修改web.xml以包含以下内容:
<security-constraint> <web-resource-collection> <web-resource-name>Protected Context</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint>
这对我不起作用。 从我读过的,这将redirect一个用户从http://localhost:8080到https://localhost:8443 (如果连接器8080定义redirectPort为8443)。
我不确定这是甚至可以使用独立的Tomcat服务器。 我知道这是可能的与Apache的mod_rewrite或一些其他类似的解决scheme,但我不想在Windows机器上安装任何其他服务。
当你的第一句话不是拼写错误时,只需在端口8080上为http添加一个连接器,并按照你所描述的添加redirect。 您不能让http和https在相同的端口上侦听。 所以让HTTP监听端口8080和HTTPS端口8443。