HTTP zu HTTPS Redirect
Internet Information Services
Im IIS (Windows) werden HTTP/HTTPS Redirects in der Datei web.config konfiguriert.
Wird die komplette Site umgeleitet, ist die entsprechende Datei im Root-Ordner der Site anzupassen. Wenn nur ein Teil der Site umgeleitet werden soll, ist die entsprechende Datei des Site Unterordners anzupassen.
Folgende Einträge müssen vorgenommen werden:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect HTTP to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Sollte nach der Änderung im Browser eine too many redirects Fehlermeldung angezeigt werden, ist im <action>-Tag der Wert url="https://{HTTP_HOST}/{R:1}" mit dem Wert der tatsächlichen Domain (z.B.: url="https://www.mydomain.com/{R:1}") zu ersetzen.
Apache
In Apache (Linux/Windows) werden HTTP/HTTPS Redirects am Einfachsten in der Datei .htaccess konfiguriert.
Wird die komplette Site umgeleitet, ist die entsprechende Datei im Root-Ordner der Site anzupassen. Wenn nur ein Teil der Site umgeleitet werden soll, ist die entsprechende Datei des Site Unterordners anzupassen.
Folgende Einträge müssen vorgenommen werden:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Enthält die Datei .htaccess bereits den Eintrag RewriteEngine On, sind die restlichen Einträge direkt darunter einzufügen.
Nginx
Die Konfiguration des Redirects wird in der nginx.conf Datei vorgenommen.
server {
listen 80;
server_name <your>.<domain>;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name <your>.<domain>;
ssl_certificate /<Path-To-Certificate>/<Certificate/Chain>.crt;
ssl_certificate_key /<Path-To-Private-Key>/<Private-Key>.pem;
}
Tomcat
Die Tomcat Konfiguration für den Redirect ist am Aufwendigsten, da gleich 2 Konfigurationsdateien angepasst werden müssen. Zum Einen die Datei $CATALINA_HOME\conf\server.xml, in der die Port Connectors angelegt werden müssen und zum Anderen die Datei $CATALINA_HOME\WEB-INF\web.xml, in der die eigentliche Redirect-Konfiguration vorgenommen wird.
$CATALINA_HOME\conf\server.xml
<!-- Define a SSL HTTP/1.1 Connector on port 8443 --> <Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="<Path>\<Keystore-File>.jks" keystorePass="<Keystore-Password>" clientAuth="false" sslProtocol="TLS" />
$CATALINA_HOME\WEB-INF\web.xml
<web-app>
...
<security-constraint>
<web-resource-collection>
<web-resource-name><Web-Resource></web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
...
</web-app>
