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