Problem
Ich möchte, dass auf das System nur via https zugegriffen werden kann. Anfragen auf http:// sollen automatisch auf https:// umgeleitet werden.
Solution
SSL-Zertifikat
Zunächst benötigen Sie ein SSL-Zertifikat samt Private Key für Ihren Server. Dies muss auf dem Tomcat Server im conf Verzeichnis abgelegt werden.
SSL-Connector erstellen in conf/server.xml
Als nächstes müssen Sie einen SSL-Connector erstellen. Fügen Sie im conf/server.xml den folgenden XML-Block nach den HTTP-Connector ein. Die Filenamen goco-key.pem, goco-cert.pem und (optional) goco-certchain.pem müssen auf ersetzt werden mit den Namen Ihrer Zertifikat Files. Ihre Zertifikat Fileendungen können anders sein (z.B. .crt, .key).
<Connector port="443" protocol="org.apache.coyote.http11.Http11AprProtocol" maxThreads="150" SSLEnabled="true" > <SSLHostConfig> <Certificate certificateKeyFile="conf/goco-key.pem" certificateFile="conf/goco-cert.pem" certificateChainFile="conf/goco-certchain.pem" /> </SSLHostConfig> </Connector>
HTTP auf HTTPS umleiten in conf/web.xml
Um alle HTTP-Anfragen auf HTTPS umzuleiten, fügen Sie den folgenden XML-Block im conf/web.xml direkt nach dem ersten Element (<web-app ...> ein:
<security-constraint> <web-resource-collection> <web-resource-name>Entire Application</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
Starten Sie dann Tomcat neu und prüfen Sie den HTTPS-Zugang sowie die Umleitung von HTTP auf HTTPS.