Let’s Encrypt Zertifikate (RSA 4096 oder EC 521) ohne offene TCP-Ports 80 und 443 beantragen und erstellen
von Carsten Rieger|Aktualisiert
Um Let’s Enrcypt-Zertifikate mit einer Schlüssellänge von 4096 Bit (RSA) oder auf Basis der Elliptische-Kurven-Kryptografie (EC secp384r1 oder EC secp521r1) beantragen zu können, ohne zugleich die TCP-Ports 80 und 443 öffnen zu müssen, gehen Sie bitte wie folgt vor:
sudo -s
Installieren Sie zuerst die Software certbot, um die Zertifikate beantragen zu können:
apt install -y certbot
Rufen Sie dann folgenden Befehl auf, ersetzen aber bitte die exemplarische Domain mit Ihrer Domain.
certbot --manual --preferred-challenges dns certonly --rsa-key-size 4096 -d ihre.domain.de
Auch moderne Zertifikate (bspw. Elliptic Curve secp384r1 oder secp521r1) lassen sich beantragen, bspw. alternativ so:
certbot --manual --preferred-challenges dns certonly --elliptic-curve secp384r1 -d ihre.domain.de
Für diesen Artikel verwenden wir ein RSA-Zertifikat mit einer Schlüssellänge von 4096 Bit: certbot –manual –preferred-challenges dns certonly –rsa-key-size 4096 -d ihre.domain.de
Übertragen Sie dann die Angaben aus der Konsole in Ihr DNS (bspw. bei ALL-INKL.COM) als TXT-Record ein:
Kehren Sie nun in die Konsole zurück und bestätigen Sie den Dialog mit <ENTER>. Achtung, die DNS.Replikation kann einige Zeit in Anspruch nehmen.
Sofern Sie die Nachricht „…Successfully received certificate….“ sehen, waren Sie erfolgreich und finden die Zertifikate unter
Certificate is saved at: /etc/letsencrypt/live/ihre.domain.de/fullchain.pem
Key is saved at: /etc/letsencrypt/live/ihre.domain.de/privkey.pem
wieder. Das bedeutet folgende Dateien finden Sie hier:
CERT: /etc/letsencrypt/live/ihre.domain.de/cert.pem CHAIN: /etc/letsencrypt/live/ihre.domain.de/chain.pem FULLCHAIN: /etc/letsencrypt/live/ihre.domain.de/fullchain.pem PRIVKey: /etc/letsencrypt/live/ihre.domain.de/privkey.pem
Die regelmäßige Erneuerung der Zertifikate können Sie bspw. über einen cron-Job oder den certbot.timer automatisieren:
crontab -e
@weekly /usr/bin/certbot renew > /dev/null 2>&1
Wichtig: Nach dem (erstmaligen) Anfordern des Zertifikates per dns challenge muss die renewal-config des Zertifikats geprüft und ggf. angepasst werden:
nano /etc/letsencrypt/renewal/ihre.domain.de.conf
Als Authenticator muss standalone gesetzt sein:
authenticator = standalone
Treten Probleme auf, so prüfen Sie den Systemdienst
systemctl enable certbot.timer
systemctl restart certbot.timer
systemctl status certbot.timer
und sehen in der dazugehörigen Logdatei nach:
/var/log/letsencrypt/letsencrypt.log
Ein bereits abgelaufenes Zertifikate kann bei Bedarf wieder reaktiviert/erneuert werden. Auch, wenn es zuvor mit einer anderen Methode (bspw. ‚challenge‘) erstellt wurde. Wichtig dabei ist, dass das abgelaufen Zertifiakt vorher mit
certbot delete
gelöscht wird. Viel Spaß wünscht Ihnen das Team von Carsten Rieger IT-Services!