Wer seine Webserver mit den Diensten von letsencrypt.org absichert und den Datenfluss vom Client zum Server mit Zertifikaten verschlüsseln lässt (https) muss unter Umständen handeln. Wenn Sie bisher auf die TLS-SNI-01-Challenge gesetzt haben, sind einige Anpassungen notwendig, um auch inskünftig automatisch die Zertifikate von letsencrypt.org ohne Probleme zu erhalten. Per 13. Februar 2019 wird TLS-SNI-01 vorübergehend und dann per 13. März 2019 definitiv abgeschaltet.
Zum Glück ist ein Wechsel nicht schwierig (Kurzanleitung hier auf letsencrypt.org):
Stellen Sie zuerst die Version von Certbot fest, die auf Ihrem System vorhanden ist:
certbot --version || /path/to/certbot-auto --version
Wenn Sie auf einer Version vor 0.28 sind, dann müssen Sie den Certbot updaten. Für Ubuntu 18.04 geht das wie folgt (weitere Derivate und die passende Anleitung finden Sie auf certbot.eff.org):
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python-certbot-apache
Überprüfen Sie danach nochmals die installierte Version. Sie sollten nun auf der Version 0.28 (Stand 04.02.2019) sein:
certbot --version || /path/to/certbot-auto --version
Nun müssen die Konfigurationsdateien anpassen, damit nicht mehr auf die TLS-SNI-01-Challenge gesetzt wird. Der nachfolgende Befehl setzt die Challenge auf HTTP-01. Andere Challenges finden Sie auf der entsprechenden man page.
sudo sh -c "sed -i.bak -e 's/^\(pref_challs.*\)tls-sni-01\(.*\)/http-01/g' /etc/letsencrypt/renewal/*; rm -f /etc/letsencrypt/renewal/*.bak"
Nun sollten Sie einen Trockenlauf durchführen und testen, ob alles funktioniert:
sudo certbot renew --dry-run
Wenn bei diesem Trockenlauf Fehlermeldungen zu den Verzeichnissen /etc/letsencrypt/post-hook.d/, /etc/letsencrypt/pre-hook.d/ und /etc/letsencrypt/renew-hook.d/ auftauchen, dann haben Sie mit grösster Wahrscheinlichkeit einige Certbot-Versionen übersprungen. Das ist halb so wild, erstellen Sie einfach die fehlenden Verzeichnisse (weitere Hinweise dazu auf github.com):
sudo mkdir /etc/letsencrypt/post-hook.d/ /etc/letsencrypt/pre-hook.d/ /etc/letsencrypt/renew-hook.d/
Im Prinzip ist nun alles erledigt. Der Certbot wird beim nächsten Mal nun auf die HTTP-01-Challenge setzen und die Zertifikate erneuern.
Ich habe es aber bevorzugt, die Erneuerung sofort durchzuführen. Falls später irgendwann der Cronjob startet und irgendetwas doch nicht so läuft, wie es eigentlich sollte, hat man das Geschenk. Und auf Notfallübungen kann ich gut verzichten.
Um die Zertifikatserneuerung sofort zu erzwingen, verwenden Sie diesen Befehl:
sudo certbot renew --force-renewal
Wie Sie im Bild weiter oben aber sehen können, hat der Certbot weiterhin die TLS-SNI-01-Challenge angewandt, obwohl die Konfigurationsdateien angepasst waren. Der Grund dafür waren zwei unterschiedliche Certbot-Pakete (weitere Hinweise gibt es in diesem github.com-Issue). Sie können einen Versionenkonflikt auf Ihrem Server wie folgt überprüfen:
sudo dpkg --list | grep -E "python.?-certbot"
Die Ausgabe kann dann so aussehen:
Man sieht sofort, dass unter “python3-certbot-apache” immer noch eine Version 0.23.0–1 existiert. Das veraltete Paket können Sie ganz einfach entfernen und die aktuelle Version installieren und danach nochmals die Versionen prüfen:
#Deinstallation der alten und Installation der neuen Version
sudo apt remove python3-certbot-apache -y && sudo apt install python-certbot-apache -y
#Versionen prüfen
sudo dpkg --list | grep -E "python.?-certbot"
Danach testen Sie alles nochmals mit einem Trockenlauf oder einem Erneuerungsdurchgang:
#Trockenübung ohne Zertifikatserneuerung
sudo certbot renew --dry-run
#Zertifikate sofort erneuern
sudo certbot renew --force-renew
Sämtliche konfigurierten Zertifikate werden nun mit der HTTP-01-Challenge erneuert. TLS-SNI-01 ist damit Geschichte und Ihr Server für die Zukunft gerüstet.
Rechtsanwalt Roman Kost ist Spezialist für Informationssicherheit und Datenschutz. Als Anwalt vertritt er Sie unter anderem im Bereich des Hackerstrafrechts, sämtlichen Belangen der IT und der Informationssicherheit sowie des Datenschutzes.
Tel: 041 440 33 43 Signal: 041 440 33 43 Email:
Web: https://ra-kost.ch LinkedIn Xing