Validieren eines Let’s Encrypt-Zertifikats auf einer Website, die bereits auf Cloudflare aktiv ist
Überblick
Diese Anleitung beschreibt weitere Einzelheiten über die Verwendung der Webroot-Methode zur Verifizierung im offiziellen Let’s-Encrypt-Client, wie in der folgenden Dokumentation beschrieben: https://letsencrypt.readthedocs.org/en/latest/using.html#webroot
Hinweis: Als Standardmethode für die ACME-Authentifizierung setzt der Let’s-Encrypt-Client die DVSNI-Methode ein. Bei einer Cloudflare-aktivierten Domain würde dies fehlschlagen, da SSL (TLS) an unserem Edge endet und der ACME-Server niemals das Zertifikat zu sehen bekommt, das der Client am Ursprung vorlegt. Andere ACME-Validierungsmethoden (wie DNS oder HTTP) werden ordnungsgemäß funktionieren, wenn Cloudflare aktiviert ist.
HTTP-Validierung
Wenn Sie Let’s Encrypt zum ersten Mal für eine Website konfigurieren, die bereits für Cloudflare aktiviert ist, reicht die Webroot-Methode völlig aus, um Ihr Zertifikat und Ihren privaten Schlüssel erfolgreich zu verifizieren und abzurufen.
-
Laden Sie den Let’s-Encrypt-Client herunter und wechseln Sie in das Download-Verzeichnis:
git clone https://github.com/letsencrypt/letsencryptcd letsencrypt/ -
Führen Sie das Skript für die automatische Installation aus:
./letsencrypt-auto -
Mithilfe des
letsencrypt
-Clients mit dem Befehlcertonly
und dem Flag--webroot
ist es Ihnen möglich, das Zertifikat/Schlüssel-Paar mittels HTTP-Verifizierung zu verifizieren und abzurufen. Ein entsprechender Befehl könnte zum Beispiel so aussehen:/root/.local/share/letsencrypt/bin/letsencrypt certonly --webroot --webroot-path /usr/share/nginx/html/ --renew-by-default --email email@host.tld --text --agree-tos -d example.tld -d www.example.tldWobei
--webroot-path
das Verzeichnis auf Ihrem Server angibt, in dem sich Ihre Website befindet (in diesem Beispiel wäre das „nginx“)
--renew-by-default
standardmäßig „Verlängerung“ auswählt, wenn Domains eine übergeordnete Menge eines zuvor erhaltenen Zertifikats sind
--email
die E-Mail-Adresse ist, die für die Registrierung verwendet wird und als Kontaktadresse für Wiederherstellungszwecke dient.
--text
die Textausgabe anzeigt
--agree-tos
anzeigt, dass man mit dem Abonnentenvertrag von Let’s Encrypt’s einverstanden ist
-d
die Hostnamen angibt, die dem SAN hinzugefügt werden sollen.
-
Nach erfolgreicher Durchführung dieser Verifizierungsmethode wird eine Textausgabe angezeigt, die in etwa so aussieht:
Herzlichen Glückwunsch! Your certificate and chain have been saved at /etc/letsencrypt/live/example.tld/fullchain.pem. (Ihr Zertifikat und die Zertifikatkette wurden unter /etc/letsencrypt/live/example.tld/fullchain.pem gespeichert.) Your cert will expire on 2016-03-03. (Ihr Zertifikat ist bis zum 03.03.2016 gültig.) Um eine neue Version des Zertifikats zu erhalten, führen Sie in Zukunft einfach Let's Encrypt erneut aus. -
Hinweis: Zertifikat und Schlüssel werden beide unter
/etc/letsencrypt/live/example.tld/
gespeichert. Nachdem Sie beides erhalten haben, müssen Sie Ihren virtuellen Host für die Verwendung dieses Schlüssel/Zertifikat-Paares konfigurieren.
Vergessen Sie nicht, die Page Rules für die Domain im Cloudflare Dashboard zu überprüfen. Vergewissern Sie sich, dass keine dieser Page Rules dazu führen würde, dass eine Anforderung für die Validierungs-URL umgeleitet werden würde oder nur über HTTPS zugreifbar wäre.
Verlängerung
Kurz bevor das Zertifikat abläuft, können Sie es mit dem letsencrypt renew
-
Befehl verlängern, ohne dazu Änderungen an der Cloudflare-Konfiguration vornehmen zu müssen. Das sollte unter den folgenden Voraussetzungen funktionieren:
- In der .conf-Datei, die der letsencrypt-Client für die Verlängerung verwendet, ist
authenticator = webroot
angegeben. - Die Validierungs-URL ist über HTTP zugreifbar.
- Auf diese URL sind keine Umleitungen angewendet.
Alternativ dazu können Sie die oben aufgeführten Schritte auch wiederholen, um sich einfach ein neues Zertifikat ausstellen zu lassen.