Freitag, 11. Dezember 2015, 18:14 Uhr

HTTPS in der Produktionsumgebung, HTTP in der Entwicklungsumgebung

Seit dem 4. Dezember kann man seine bei Cyon gehosteten Web-Sites mit HTTPS-Verschlüsselung ausliefern. Wenige Stunden nach der Freischaltung dieser Funktionalität hatte ich alle meine Web-Sites mit ein paar Klicks in my.cyon einem kostenlosen HTTPS-Zertifikat von Let’s Encrypt ausgestattet. Ab dem Zeitpunkt konnten manuell verschlüsselte Verbindungen aufgebaut werden.

Damit die Web-Sites standardmässig über HTTPS ausgeliefert werden und Verbindungsversuche über HTTP automatisch nach HTTPS umgeleitet werden, erfasste ich im wwwroot jeder Domain folgenden Eintrag in die .htaccess:

...
RewriteEngine   On

RewriteCond %{HTTPS} =off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L,R=301]
...

Via: Wie kann ich Besucher meiner Website auf SSL und HTTPS umleiten?

Heute nun aber die nächste Herausforderung: Eine selber geschriebene Web-Applikation soll auf dem Produktionsserver (bei Cyon) alle Anfragen auf HTTPS umleiten, während in der Entwicklungsumgebung nur HTTP verwendet wird.

Auch dies biegt man über einige mod_rewrite-Anweisungen .htaccess so hin, dass man dieselbe .htaccess sowohl in der Entwicklungs- als auch in der Produktionsumgebung verwenden kann:

...
RewriteEngine   On

RewriteRule .* - [E=ENVIRONMENT:dev]

RewriteCond %{SERVER_NAME} subdomain.domain.tld$
RewriteRule .* - [E=ENVIRONMENT:prod]

RewriteCond %{ENV:ENVIRONMENT} prod
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
...

Via: Local .htaccess environment conditionals, HTTPS example

Es empfiehlt sich zudem, das verwendete Protokoll durch die Applikation überprüfen zu lassen und Assets, die von anderen Web-Sites geladen werden (bspw. Google-Schriften), ebenfalls mit HTTPS anzusprechen. Sonst kriegt man bei Firefox kein grünes Schloss in der URL-Leiste und Safari weigert sich, die Schriften über eine unsiche

Labels: IT

Kommentar erfassen