Wissensdatenbank

1 000 FAQs, 500 Anleitungen und erläuternde Videos. Hier gibt es nur Lösungen!

Erneuern eines "Wildcard"-Zertifikats per DNS-Herausforderung

Dieser Leitfaden erklärt, wie Sie ein Zertifikat erstellen und dann automatisch erneuern können, indem Sie eine wildcard über eine DNS-Herausforderung mit Certbot und dem Plugin dns-infomaniak verwenden.

 

1. Installation des DNS-Infomaniak-Plugins

DNS-Plugins sind mit Certbot nicht standardmäßig installiert. Um certbot und das Plugin dns-infomaniak korrekt zu installieren, um einen möglichen Fehler The requested dns-infomaniak plugin does not appear to be installed zu vermeiden, beachten Sie die offiziellen Certbot-Anweisungen und wählen Sie die richtigen Software → System und konsultieren Sie dann die Registerkarte Wildcard.

 

2. Erstellen des Wildcard-Zertifikats

Öffnen Sie ein Terminal und führen Sie den folgenden Certbot-Befehl aus, um das Zertifikat manuell zu erstellen:

certbot certonly --manual \
-d *.domain.tld \
--preferred-challenges dns-01 \
--server https://acme-v02.api.letsencrypt.org/directory

 

3. Erstellen Sie die TXT-Eintragung

Über die Domainverwaltung des Infomaniak Managers, erstellen Sie die angeforderte TXT-Eintragung für _acme_challenge.domain.tld.

 

4. Erstellen Sie die Konfigurationsdatei für die Erneuerung

Öffnen Sie ein Terminal und erstellen oder bearbeiten Sie die Datei: /etc/letsencrypt/renewal/domain.tld.conf. Beispiel für die empfohlene Konfiguration:

cert = /etc/letsencrypt/live/domain.tld/cert.pem
privkey = /etc/letsencrypt/live/domain.tld/privkey.pem
chain = /etc/letsencrypt/live/domain.tld/chain.pem
fullchain = /etc/letsencrypt/live/domain.tld/fullchain.pem
[renewalparams]
authenticator = manual
manual_auth_hook = /root/infomaniak-auth.sh
manual_cleanup_hook = /root/infomaniak-clean.sh
server = https://acme-v02.api.letsencrypt.org/directory
pref_challs = dns-01
account = xxxxx
key_type = rsa

Einige Fehler stammen von automatisch von Certbot erstellten Dateien, die veraltete oder falsche Felder enthalten (version = ..., cert-path = ..., usw.). Erstellen Sie immer die Datei renewal neu, indem Sie dem obigen Beispiel folgen.

 

5. Erstellen Sie das Skript infomaniak-auth.sh

Über die API-Verwaltung des Infomaniak Managers, erstellen Sie ein Infomaniak-API-Token mit dem Bereich domain, das XXXXXXX im folgenden Skript ersetzt.

Die in Ihrer Konfiguration angegebene Datei muss unbedingt mit dem tatsächlichen Namen des Skripts übereinstimmen. Beispiel: Wenn Sie infomaniak-auth.sh in der Konfiguration verwenden, erstellen Sie nicht infomaniak-auth-domain.xyz.sh.

Öffnen Sie ein Terminal und erstellen Sie die Datei /root/infomaniak-auth.sh ohne Tabulatoren am Zeilenende (diese verursachen Fehler in Bash) mit:

#!/bin/bash
INFOMANIAK_API_TOKEN="XXXXXXX"
# Ajout de l'enregistrement TXT via le plugin DNS Infomaniak
/usr/bin/certbot \
  --authenticator dns-infomaniak \
  --server https://acme-v02.api.letsencrypt.org/directory \
  -d "$CERTBOT_DOMAIN" \
  --agree-tos

Das Skript muss ausführbar gemacht werden:

chmod +x /root/infomaniak-auth.sh

 

6. Erstellen Sie ein Reinigungsskript

Erstellen Sie die Datei /root/infomaniak-clean.sh

#!/bin/bash
# Optionnel : suppression de l'entrée DNS temporaire
exit 0

Das Skript muss ausführbar gemacht werden:

chmod +x /root/infomaniak-clean.sh

 

7. Testen Sie die Erneuerung

Bevor Sie einen Cron verwenden, testen Sie immer mit diesem Befehl, der mögliche Fehler anzeigt (Skript nicht gefunden, falscher Dateiname, fehlende Berechtigungen, fehlendes Plugin usw.):

certbot renew --dry-run

 

8. Konfigurieren Sie eine Cron-Aufgabe

0 0 */30 * * /usr/bin/certbot renew --quiet --config /etc/letsencrypt/renewal/domain.tld.conf

Ändern Sie 30 Tage oben entsprechend der gewünschten Häufigkeit. Der Cron wird automatisch verwenden:

  • die Datei domain.tld.conf
  • das Authentifizierungsskript infomaniak-auth.sh
  • das Plugin dns-infomaniak

War diese FAQ nützlich?