![turnserver](https://www.c-rieger.de/wp-content/uploads/2022/03/2022_artkel-300x137.png)
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
Achtung, möchten Sie moderne (bspw. elliptic curve secp384r1) Zertifikate verwenden, installieren Sie ggf. aktuellere certbot-Versionen nach dieser Anleitung.
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
![](https://www.c-rieger.de/wp-content/uploads/2022/12/grafik-2-300x165.png)
Übertragen Sie dann die Angaben aus der Konsole in Ihr DNS (bspw. bei ALL-INKL.COM) als TXT-Record ein:
![](https://www.c-rieger.de/wp-content/uploads/2022/12/grafik-1-300x85.png)
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.
![](https://www.c-rieger.de/wp-content/uploads/2022/12/grafik-3-300x165.png)
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
![](https://www.c-rieger.de/wp-content/uploads/2022/12/grafik-4-300x150.png)
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
Möchte man im Anschluss an das Renewal einen Dienst (bspw. nginx) neu starten, so erweitert man den Befehl um einen ‚renew-hook‘-Befehl:
@weekly /usr/bin/certbot renew --renew-hook 'systemctl restart nginx.service' > /dev/null 2>&1
![](https://www.c-rieger.de/wp-content/uploads/2022/12/grafik-5-300x150.png)
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.
![](https://www.c-rieger.de/wp-content/uploads/2023/02/grafik-300x214.png)
Beispielsweise für die Nextcloud nutzen wir acme.sh. Hier empfiehlt sich ein Blick auf die API von acme um weiterhin die automatische Erneuerung der Zertifikate umsetzen zu können: Die Beantragung sieht bspw. wie folgt aus:
su - acmeuser
export KAS_Login=<ACCOUNTID>
export KAS_Authdata="<PLAINTEXTPASSWORD>"
export KAS_Authtype=plain
acme.sh --issue --dns dns_kas -d ihre.domain.de --server letsencrypt --keylength 4096 --key-file /etc/letsencrypt/privat/rsa/privkey.pem --ca-file /etc/letsencrypt/privat/rsa/chain.pem --cert-file /etc/letsencrypt/privat/rsa/cert.pem --fullchain-file /etc/letsencrypt/privat/rsa/fullchain.pem --reloadcmd "sudo /bin/systemctl reload nginx.service"
acme.sh --issue --dns dns_kas -d ihre.domain.de --server letsencrypt --keylength ec-384 --key-file /etc/letsencrypt/privat/ecc/privkey.pem --ca-file /etc/letsencrypt/privat/ecc/chain.pem --cert-file /etc/letsencrypt/privat/ecc/cert.pem --fullchain-file /etc/letsencrypt/privat/ecc/fullchain.pem --reloadcmd "sudo /bin/systemctl reload nginx.service"
Viel Spaß wünscht Ihnen das Team von Carsten Rieger IT-Services!