SSL — Wie wird das richtig eingebaut?

Der SSL (Secu­re Sockets Lay­er) soll­te auf jeder Web­site akti­viert sein. Hier­durch wird gewähr­leis­tet, dass die Daten­über­tra­gung von einer Web­site zu dem Gerät des Besu­chers (PC, Tablet oder Smart­pho­ne) gesi­chert ist. Um SSL zu akti­vie­ren, muss ein soge­nann­tes SSL-Zer­ti­fi­kat instal­liert werden.

In die­sem Arti­kel wird beschrie­ben, wie im “ein­fachs­ten Fall” das SSL-Zer­ti­fi­kat auf der Web­site ein­ge­bun­den und ver­wen­det wird. Es wird davon aus­ge­gan­gen, dass …

  • eine Wor­d­Press-Web­site vorliegt,
  • die­se bei einem “guten” Hos­ter in einem Web­hos­ting betrie­ben wird,
  • dass es sich um ein Apa­che-Hos­ting han­delt und
  • dass das SSL-Zer­ti­fi­kat über den Hos­ter direkt ein­ge­bun­den wer­den kann.

Es dürf­te damit ein Groß­teil aller Web­sites (in Deutsch­land) abe­gdeckt sein. 

1. Die einzelnen Schritte

Zur (rich­ti­gen) Akti­vie­rung soll­ten fol­gen­den fol­gen­de Schrit­te durch­ge­führt werden:

  1. Ein­rich­ten des SSL-Zer­ti­fi­kats beim Hoster
  2. Umbau­en der Web­site so, dass kei­ne http://-Aufrufe mehr vor­han­den sind
  3. Zwangs­um­lei­tung von http:// auf https://

1.1 Einrichten des SSL-Zertifikats beim Hoster

In der Regel bie­ten die Hos­ter kos­ten­freie SSL-Zer­ti­fi­ka­te an. Die­se kön­nen dann per Tas­tenklick einer Domain hin­zu­ge­fügt werden.

1.2 Umbauen der Website so, dass keine http://-Aufrufe mehr vorhanden sind

Es dür­fen dann auf der Web­site kei­ne Inhal­te mehr ver­wen­det wer­den, die über einen http://-Aufruf ein­ge­bun­den sind.

1.3 Zwangsumleitung von http:// auf https://

Sind die ers­ten bei­den Schrit­te erfolgt, so soll­te dafür Sor­ge getra­gen wer­den, dass tat­säch­lich auch alle Auf­ruf über https:// abge­wi­ckelt wer­den. Hier­zu kann ein Code-Frag­ment in die htac­cess-Datei ein­ge­bun­den werden.

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

</IfModule>

Wenn die Sub­do­mains (z.B. “www”) auch umge­lei­tet wer­den sol­len, so muss fol­gen­des Code-Frag­ment ein­ge­bun­den werden:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.domain.de$ [NC]
RewriteRule ^(.*)$ https://www.domain.de/$1 [L,R=301]

RewriteCond %{SERVER_PORT} !=443
RewriteRule ^(.*)$ https://www.domain.de/$1 [R=301,L]

</IfModule>

2. Überpüfen der SSL-Aktivierung

Zur Über­prü­fung, ob eine Web­site “pas­send” umge­stellt wur­de, kann dann (auch) fol­gen­des Tool ein­ge­setzt wer­den: https://www.whynopadlock.com/

Häu­fi­ge Fehlerquellen:

  • Mixed Con­tent: Es sind auf einer Web­sei­te sowohl Ver­wei­se mit http:// als auch mit https:// zu finden
  • Kei­ne Zwangs­um­lei­tung, dies fällt ins­be­son­de­re bei der Goog­le Search Con­so­le auf

3. Weitere Ergänzungen / Maßnahmen

Zudem ist es sinn­voll, HSTS (HTTP Strict Trans­port Secu­ri­ty) zu akti­vie­ren.
Hier­zu muss in der htac­cess-Datei fol­gen­des Code-Frag­ment ein­ge­fügt wer­den. Die­ser könn­te bei­spiels­wei­se so aussehen:

Header Set Strict-Transport-Security: max-age=10886400; includeSubDomains