Let's encrypt: Unterschied zwischen den Versionen
Matt (Diskussion | Beiträge) |
Matt (Diskussion | Beiträge) |
||
Zeile 85: | Zeile 85: | ||
Parameter <code>certonly</code> sollte verwendet werden. Sagt zumindest der certbot. | Parameter <code>certonly</code> sollte verwendet werden. Sagt zumindest der certbot. | ||
Falls man z.B. eine automatische Installation haben möchte, muss man bei Webroot-Validierung den Parameter <code>--installer</code> verwenden. | |||
==== Nginx ==== | ==== Nginx ==== |
Version vom 19. Januar 2019, 22:18 Uhr
Anleitung, um Zertifikate mit einem der Let's Encrypt Clients zu erstellen oder zu aktualisieren.
Diese Anleitung bezieht sich auf den Certbot-Client.
Certbot
Anleitung siehe: https://certbot.eff.org/
Installation
Package für Debian:
apt-get install python-certbot-apache -t jessie-backports
Das Paket installiert auch einen Cronjob, der täglich die Aktualisierung ausführt, die Zertifikate aber nur dann tatsächlich aktualisiert, wenn ein bestimmtes Zeitfenster erreicht ist. Das Zeitfenster wird definiert in den Conf-Dateien in:
/etc/letsencrypt/renew/
Zertifikate erstellen inkl. Anpassung der Apache Konfig-Dateien unter verwendung des Apache-Plugins:
# certbot --apache
Alternativ certbot gleich auf bestimmte Domains festlegen:
# certbot --apache -d domain1.tld -d domain2.tld
Zertifikate erstellen ohne Anpassung der Apache Konfig-Dateien (die *.pem-Files müssen dann manuell in die Apache-Conf-Files eingefügt werden):
# certbot certonly
Zertifikate aktualisieren
# certbot renew # non-interaktiv erneuern aller Zertifikate # certbot --renew certonly # veraltet (?)
Weitere Domains hinzufügen
Dies ist nicht möglich. Aber man kann eine neue Registrierung mit einer neuen Liste von Domains durchführen:
# certbot --apache -d olddomain1.tld,olddomain2.tld,newsubdomain.newdomain.tld
Wichtig: Vorher die Domains verfügbar machen und den Server entsprechend einrichten.
Tricks
- Um den Namen der Verzeichnisse in /etc/letsencrypt zu steuern am besten:
- Zunächst die Hauptdomain mit Zertifikat erstellen
- Danach mögliche Subdomains hinzufügen durch erneuten Aufruf von Certbot und Auswahl der weiteren Domains
- Man kann auch ohne Konfiguration des Apache-Servers (ServerName und SSL-Konfiguration) den Certbot ausführen. Dieser fragt dann ServerName ab und legt eine SSL-Konfiguration selbst an.
Validation-Challenge-Methoden
Plugin | Challenge-Typ und Port |
---|---|
Apache | tls-sni-01 (443) |
Webroot | http-01 (80) |
nginx | tls-sni-01 (443) |
standalone | http-01 (80) oder tls-sni-01 (443) |
DNS plugins | dns-01 (53) |
manual | http-01 (80), dns-01 (53) oder tls-sni-01 (443) |
Wenn ein Plugin mehrere Methoden nutzen kann, dann wird mit dem Parameter --preferred-challenges
ausgewählt, welcher Challenge-Typ verwendet werden soll.
Die Ausgewählte Methode wird in Datei /etc/letsencrypt/renewal/<domain>.conf
im Parameter authenticator
im Abschnitt [renewalparams]
gespeichert.
Quelle: https://certbot.eff.org/docs/using.html#getting-certificates-and-choosing-plugins
Apache
todo
Webroot
Nutzung des Webroot Plugins und der http-01-Validierung:
certbot certonly --webroot -w /var/www/example -d www.example.com -d example.com -w /var/www/other -d other.example.net -d another.other.example.net
Parameter certonly
sollte verwendet werden. Sagt zumindest der certbot.
Falls man z.B. eine automatische Installation haben möchte, muss man bei Webroot-Validierung den Parameter --installer
verwenden.
Nginx
todo
Standalone
todo
DNS plugin
todo
Manual
ungetestet:
certbot --manual --preferred-challenges http -w /var/www/example -d www.example.com -d example.com -w /var/www/other -d other.example.net -d another.other.example.net
Server Hardening
Vergleiche Artikel über Server Hardening (Debian).
Expiration-E-Mails
Installation
Bei der Erstregistrierung einer Domain mit Certbot wird ein Account bei Lets Encrypt angelegt.
Der Dialogassistenten fragt daraufhin automatisch eine E-Mailadresse ab.
Diese ist für Notfallkommunikation betreffend des Accounts und für Expiration E-Mails benutzt.
Details siehe https://letsencrypt.org/docs/expiration-emails/
Änderung der E-Mailadresse
certbot register --update-registration --email yourname+1@example.com
Abmeldung einer E-Mailadresse
In Expiration-E-Mails ist am Ende ein Abmelden-Link, mit dem man sich aus dem Mailverteiler entfernen kann.
Proxy-Domains
Wenn ein Server über einen Virtual Host mit Proxy in Apache eingebunden wird, kann dieser Virtual Host die DNS-Challenge von Let's Encrypt nicht erfolgreich erfüllen.
Für die Challenge in Letsencrypt ist Zugriff auf die Domainhinhalte notwendig.
Als Lösung kann die Webroot-Challenge genutzt werden. Hierfür muss Letsencrypt auf Webinhalte unter .well-known/acme-challange
zugreifen.
Für die Webroot-Challenge müssen die Unterverzeichnisse .well-known/acme-challange
explizit vom Proxy ausgeschlossen werden.
Die ProxyPass-Parameter werden in der Reihenfolge in der Konfig-Datei geladen. Daher werden darin folgende Zeilen eingefügt:
ProxyPass /.well-known/acme-challenge ! Alias /.well-known/acme-challenge /var/www/html/.well-known/acme-challenge <Directory "/var/www/html/.well-known/acme-challenge"> Options None AllowOverride None Require all granted AddDefaultCharset off </Directory>
Der ProxyPass-Parameter mit einem Ausrufe-Zeichen am Ende beschreibt ein Verzeichnis, welches nicht per Proxy an das Proxy-Ziel weiter geleitet wird.
Der Alias-Parameter erzeugt ein Verzeichnis im Webserver, und leitet diesen an den angegebenen Pfad weiter.
Quellen: