Inhaltsverzeichnis
Let's Encrypt
Um Web-Seiten sicher zu betreiben, ist es wichtig eine SSL Verschlüsselung anzubieten.
Durch eine SSL Verschlüsselung wird die Kommunikation zwischen Server und Web-Browser verschlüsselt und so kann niemand z. B. Passwörter oder andere wichtige Informationen mitlesen.
Grundsätzlich funktioniert das auch mit selbst erzeugten Zertifikate, aber dann kommt es zu unschönen Fehlermeldungen, dass den Zertifikaten nicht ertraut wird.
Hintergrund hierfür ist, dass SSL-Zertifikate durch ein CA bestätigt sein müssen, damit der Browser die Echtheit anzeigt. Diese Bestätigungen sind für eine private Seite viel zu teuer. Es gibt aber auch den Dienst „Let's Encrypt“, der bestätigte SSl-Zertifikate kostenlos anbietet.
Zertifikate auf lion
Auf lion laufen zwei virtuelle nginx-Web-Server mit den URL's:
- koecher.heim-server.de
- hse.koecher.it
Das Paket letsencrypt wurde mit
$ sudo apt install letsencrypt
installiert.
Erzeugung der Zertifikate
Für koecher.heim-server.de konnte das Zertifikat direkt erzeugt werden, da ein Zugriff aus dem Netz auf das Web-Verzeichnis möglich ist. !Achtung! letsencrypt muss immer als root gestartet werden.
# letsencrypt certonly --webroot -w /var/www/koecher.heim-server.de/html -d koecher.heim-server.de
Für hse.koecher.it funktioniert das nicht, weil es ein tomcat - Server ist, auf den nicht geschrieben werden kann. Daher muss nginx zunächst gestoppt werden.
# systemctl stop nginx # letsencrypt certonly --standalone -d hse.koecher.it
Die Zertifikate werden in '/etc/letsencrypt/live/<domain>/
' abgelegt. Ich habe symlinks in '/etc/nginx/ssl
' erzeugt und die Zertifikate zugewiesen, Beispiel in '/etc/nginx/sites-available/hse.koecher.it.conf
':
$ ls -l /etc/nginx/ssl insgesamt 8 lrwxrwxrwx 1 root root 50 Nov 14 16:56 hse.koecher.it-cert.pem -> /etc/letsencrypt/live/hse.koecher.it/fullchain.pem lrwxrwxrwx 1 root root 48 Nov 14 16:56 hse.koecher.it-key.pem -> /etc/letsencrypt/live/hse.koecher.it/privkey.pem $ cat /etc/nginx/sites-avaiable/hse.koecher.it ... ssl_certificate /etc/nginx/ssl/hse.koecher.it-cert.pem; ssl_certificate_key /etc/nginx/ssl/hse.koecher.it-key.pem; ...
Erneuern der Zertifikate
Die Zertifikate haben immer nur eine Gültigkeit von 90 Tagen. Grundsätzlich können die Zertifikate mit dem Befehl
# letsencrypt renew --agree-tos --email andreas@koecher.it
einfach erneuert werden. Eine Automatisierung ist allerdings nicht so einfach möglich, weil der nginx hierfür wieder gestoppt werden muss und das sollte nicht so häufig gemacht werden. Das Programm prüft, ob die Zertifikate erneuert werden müssen und führt dann eine Signierung des Pub-Key durch.
Die Erneuerung der Zertifikate kann auch mit
# certbot renew
durchgeführt werden.
Am 04.02.2017 habe ich das erste Mal eine Aktualisierung durchgeführt.
- Für die Domain
hse.koecher.it
hat das Programm funktioniert, wenn der nginx ausgeschaltet war. - Die Domain
koecher.heim-server.de
lief zunächst auf einen Fehler, weil der nginx inzwischen auf eine Konfiguration für dokuwiki umgestellt wurde. Mit der Originalkonfiguration aus sites-available lief die Aktualisierung fehlerfrei durch.
Erneute Aktualisierung am 01.05.2017, keine Probleme.
Erneute Aktualisierung am 21.07.2017, diesmal auf dem Server lion. Alles ok.
Erneute Aktualisierung am 11.10.2017, koecher.heim-server hat sich am 19.09. automatisch erneuert, hse.koecher.it ok.
Erneute Aktualisierung am 01.01.2018, koecher.heim-server hat sich am 18.11. automatisch erneuert, hse.koecher.it ok.
Aktualisierung 02.09.2018 ok
Aktualisierung 21.01.2019 ok