Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
webhosting:liveconfig:ssl [2016/07/29 10:48] PHP-Friends |
webhosting:liveconfig:ssl [2016/08/31 12:41] (aktuell) PHP-Friends [HSTS aktivieren] |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== SSL-Verschlüsselung einer Website ====== | ====== SSL-Verschlüsselung einer Website ====== | ||
| - | Insofern eine Website per SSL verschlüsselt werden soll, bieten wir zwei Möglichkeiten an: Entweder der [[#eigenes_ssl-zertifikat_importieren|Import eines bereits bestehenden Zertifikates]] oder die automatische Erstellung eines [[#let_s_encrypt|Let's Encrypt-Zertifikates]]. | + | Insofern eine Website per SSL verschlüsselt werden soll, bieten wir zwei Möglichkeiten an: Entweder der [[#eigenes_bestehendes_ssl-zertifikat_importieren|Import eines bereits bestehenden Zertifikates]] oder die automatische Erstellung eines [[#let_s_encrypt|Let's Encrypt-Zertifikates]]. |
| ===== Eigenes, bestehendes SSL-Zertifikat importieren ===== | ===== Eigenes, bestehendes SSL-Zertifikat importieren ===== | ||
| Zeile 24: | Zeile 24: | ||
| Im nächsten Schritt wird das **Zertifikat** an sich importiert (meist *.crt). | Im nächsten Schritt wird das **Zertifikat** an sich importiert (meist *.crt). | ||
| Sollten noch **CA-Zwischenzertifikate** (bspw. **ca.crt**) bestehen, so sind diese auch zu importieren. Im vorletzten Schritt ist es ganz sinnvoll eine kurze, eindeutige **Bemerkung** für das Zertifikat zu vergeben. Bestätigt wird es durch einen Klick auf **speichern**. | Sollten noch **CA-Zwischenzertifikate** (bspw. **ca.crt**) bestehen, so sind diese auch zu importieren. Im vorletzten Schritt ist es ganz sinnvoll eine kurze, eindeutige **Bemerkung** für das Zertifikat zu vergeben. Bestätigt wird es durch einen Klick auf **speichern**. | ||
| + | |||
| + | Insofern kein Fehler ausgegeben wird, wurde das Zertifikat erfolgreich importiert. | ||
| + | |||
| ===== Let's Encrypt ===== | ===== Let's Encrypt ===== | ||
| Zeile 88: | Zeile 91: | ||
| {{ :webhosting:liveconfig:pf_liveconfig_lets_encrypt8.png?nolink |}} | {{ :webhosting:liveconfig:pf_liveconfig_lets_encrypt8.png?nolink |}} | ||
| + | ==== Limits ==== | ||
| + | |||
| + | Die Zertifizierungsstelle von Let's Encrypt hat zwecks Missbrauchsvorbeugung ein paar Limits festgelegt: | ||
| + | |||
| + | * Das Limit der **in einem Zertifikat inkludierten Domainnamen** liegt bei **100** | ||
| + | * Zertifikate, die **eine Domain** enthalten, sind limitiert auf **20 pro Domain pro Woche** | ||
| + | * Ein Zertifikat mit **exakt dem selben Set aus mehreren Domains** kann **5 Mal pro Woche pro Set** angefordert werden | ||
| + | |||
| + | Weiteres bitte der Quelle entnehmen. | ||
| + | |||
| + | //Quelle: https://letsencrypt.org/docs/rate-limits/ // | ||
| ===== SSL bei einer (Sub-)Domain aktivieren ===== | ===== SSL bei einer (Sub-)Domain aktivieren ===== | ||
| Zeile 104: | Zeile 118: | ||
| {{ :webhosting:liveconfig:pf_liveconfig_activate_ssl3.png?nolink |}} | {{ :webhosting:liveconfig:pf_liveconfig_activate_ssl3.png?nolink |}} | ||
| - | Jetzt den Haken bei **HTTPS-Zugriff** setzen und das passende SSL-Zertifikat aus dem Menü direkt darunter auswählen. Bei Bedarf eine Weiterleitung von **HTTP** zu **HTTPS** setzen, indem bei **HTTP-Zugriff** **Weiterleitung** ausgewählt wird und unter **Ziel** zu **%%https://<domain>%%** weitergeleitet wird. Soll der Pfad mit übernommen werden, so fügt man noch **/*** hinzu, also in dem Sinne: **%%https://<domain>/*%%**. Anschließend mit einem Klick auf **speichern** bestätigen und über die soeben eingerichtete SSL-Unterstützung freuen. | + | Jetzt den Haken bei **HTTPS-Zugriff** setzen und das passende SSL-Zertifikat aus dem Menü direkt darunter auswählen. Bei Bedarf eine Weiterleitung von **HTTP** zu **HTTPS** setzen, indem bei **HTTP-Zugriff** **Weiterleitung** ausgewählt wird und unter **Ziel** zu **%%https://<domain>%%** weitergeleitet wird. Soll der Pfad mit übernommen werden, so fügt man noch **/*** hinzu, also in dem Sinne: **%%https://<domain>/*%%**. Anschließend mit einem Klick auf **speichern** bestätigen und über die soeben eingerichtete SSL-Unterstützung |
| + | |||
| + | ===== HSTS aktivieren ===== | ||
| + | |||
| + | Was HSTS ist, das erklärt Wikipedia eigentlich ganz gut: | ||
| + | <WRAP center round box 60%> | ||
| + | **HTTP Strict Transport Security** (HSTS) ist ein Sicherheitsmechanismus für HTTPS-Verbindungen, der sowohl vor Aushebelung der Verbindungsverschlüsselung durch eine downgrade Attacke als auch vor Session Hijacking schützen soll. Hierzu kann ein Server mittels des HTTP response header Strict-Transport-Security dem Browser des Anwenders mitteilen, in Zukunft für eine definierte Zeit (max-age) ausschließlich verschlüsselte Verbindungen für diese Domain zu nutzen. Optional lässt sich dieses über den Parameter //includeSubDomains// auf alle Subdomains ausweiten, also nicht nur auf %%https://test.de%% sondern auch auf %%https://subdomain.test.de%%. | ||
| + | |||
| + | //Quelle: https://de.wikipedia.org/wiki/HTTP_Strict_Transport_Security // | ||
| + | </WRAP> | ||
| + | |||
| + | === Apache === | ||
| + | |||
| + | Wenn Apache als Webserver benutzt wird, wird die Aktivierung über dessen **.htaccess**-Dateien erledigt. | ||
| + | Sie verbinden sich also entweder per SSH oder FTP mit Ihrem Account und navigieren zum öffentlichen Verzeichnis der gewünschten Domain oder Subdomain. Anschließend legen sie die Datei **.htaccess** an, falls diese noch nicht existiert. Dort ist einer der folgenden Einträge anzulegen: | ||
| + | |||
| + | <WRAP center round tip 60%> | ||
| + | Der Wert **max-age** ist in dem Fall auf //1 Jahr// vordefiniert. Natürlich ist dieser, je nach Belieben, frei definierbar. Die Angabe geschieht in Sekunden. | ||
| + | </WRAP> | ||
| + | |||
| + | **Nur Haupt-Domain: ** | ||
| + | <code>Header set Strict-Transport-Security "max-age=31536000" env=HTTPS</code> | ||
| + | |||
| + | **Mit Subdomains: ** | ||
| + | <code>Header set Strict-Transport-Security "max-age=31536000"; includeSubDomains env=HTTPS</code> | ||
| + | |||
| + | === nginx === | ||
| + | |||
| + | Die Aktivierung von HSTS für nginx muss über die Shell erfolgen. | ||
| + | |||
| + | Dafür haben wir ein Tool entwickelt, das auf den Namen **pf-nginx-setup** hört. | ||
| + | |||
| + | Bitte wechseln Sie dazu zur [[webhosting:liveconfig:webserver#hsts_aktivieren|Dokumentation des Tools]]. | ||