In Tomcat erzwingen Sie eine HTTP-Verbindung zu HTTPS

In Tomcat erzwingen Sie eine HTTP-Verbindung zu HTTPS

Ich versuche, eine Verbindung zu zu erzwingen http://localhost:8443. https://localhost:8443Die Site funktioniert ordnungsgemäß, wenn sie zu gehen https://localhost:8443. Falls der Benutzer dieSin https möchte ich, dass Tomcat es für sie korrigiert.

Ich habe nur einen Connector für https, definiert wie:

<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"
/>

Dies ist ein Windows-Server. Tomcat 6 ist ein eigenständiger Server (nicht mit IIS verbunden).

Ich habe versucht, web.xml zu ändern, um Folgendes einzuschließen:

<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>

Das funktioniert bei mir nicht. Soweit ich gelesen habe, würde dies einen Benutzer von zu umleiten http://localhost:8080( https://localhost:8443wenn der Connector 8080 das definiert hatUmleitungsPortals 8443).

Ich bin mir nicht sicher, ob dies mit einem eigenständigen Tomcat-Server überhaupt möglich ist. Ich weiß, dass dies mit Apache mod_rewrite oder einer ähnlichen Lösung möglich ist, aber ich möchte keinen anderen Dienst auf dem Windows-Rechner installieren.

Antwort1

wenn Ihr erster Satz kein Tippfehler ist, fügen Sie einfach einen Connector für http auf Port 8080 hinzu und fügen Sie die Umleitung wie beschrieben hinzu. Sie können http und https nicht auf demselben Port abhören lassen. Lassen Sie also http auf Port 8080 und https auf Port 8443 abhören.

verwandte Informationen