Windows

在tomcat中強制http連接到https

  • January 25, 2010

我正在嘗試強制連接到http://localhost:8443to https://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:8080https://localhost:8443(如果連接器 8080 將redirectPort定義為 8443)。

我不確定這對於獨立的 Tomcat 伺服器是否可行。我知道這可以通過 apache mod_rewrite 或其他類似的解決方案實現,但我不想在 Windows 機器上安裝任何其他服務。

當您的第一句話不是錯字時,只需在埠 8080 上添加 http 連接器並按照您的描述添加重定向。你不能讓 http 和 https 在同一個埠上監聽。所以讓http監聽8080埠,https監聽8443埠。

引用自:https://serverfault.com/questions/106206