Windows
在tomcat中強制http連接到https
我正在嘗試強制連接到
http://localhost:8443
tohttps://localhost:8443
。如果他們去,該站點可以正常工作https://localhost:8443
。如果使用者忘記了https 中的s,我希望 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>
這對我不起作用。根據我的閱讀,這會將使用者重定向
http://localhost:8080
到https://localhost:8443
(如果連接器 8080 將redirectPort定義為 8443)。我不確定這對於獨立的 Tomcat 伺服器是否可行。我知道這可以通過 apache mod_rewrite 或其他類似的解決方案實現,但我不想在 Windows 機器上安裝任何其他服務。
當您的第一句話不是錯字時,只需在埠 8080 上添加 http 連接器並按照您的描述添加重定向。你不能讓 http 和 https 在同一個埠上監聽。所以讓http監聽8080埠,https監聽8443埠。