在tomcat中強制http連接https

在tomcat中強制http連接https

我正在嘗試強制連接http://localhost:8443https://localhost:8443。如果他們訪問 ,則該網站可以正常工作https://localhost:8443。如果用戶忘記s在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>

這對我不起作用。根據我的閱讀,這會將使用者從 重定向http://localhost:8080https://localhost:8443(如果連接器 8080 定義了重定向連接埠如8443)。

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

答案1

當您的第一句話沒有拼字錯誤時,只需在連接埠 8080 上新增一個 http 連接器,然後按照您的描述新增重定向。你不能讓 http 和 https 監聽同一個連接埠。所以讓 http 監聽埠 8080,https 監聽埠 8443。

相關內容