Wissensdatenbank

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

Wildcard-Zertifikat per DNS-Herausforderung erneuern

Dieser Leitfaden erklärt, wie Sie ein Wildcard-Zertifikat über eine DNS-Herausforderung mit Certbot und dem Plugin dns-infomaniak erzeugen und automatisch erneuern.

 

1. Installation der erforderlichen Tools

Das Infomaniak-DNS-Plugin ist nicht standardmäßig enthalten. Um den Fehler plugin does not appear to be installed zu vermeiden, installieren Sie certbot und dessen Erweiterung, indem Sie den offiziellen Anweisungen folgen.

Stellen Sie sicher, dass Sie das Registerblatt Wildcard auf der Certbot-Website auswählen, nachdem Sie Ihr System ausgewählt haben.

 

2. Manuelle Erstgenerierung

Führen Sie diesen Befehl aus, um die erste Generierung des Zertifikats zu starten:

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

 

3. Validierung der DNS-Herausforderung (TXT-Eintrag)

Um zu beweisen, dass Sie den Domainnamen besitzen, gehen Sie zu Ihrem Infomaniak Manager und erstellen Sie den folgenden TXT-Eintrag:

  • Name: _acme-challenge
  • Wert: (der von dem Certbot-Befehl bereitgestellte)

 

4. Vorbereitung der Infomaniak-API

Um den Prozess zu automatisieren, erstellen Sie ein API-Token mit dem Bereich domain in Ihrer Verwaltungsschnittstelle. Dieses Token ermöglicht es dem Skript, Ihre DNS-Einträge automatisch zu aktualisieren.

 

5. Authentifizierungsskript (infomaniak-auth.sh)

Erstellen Sie die Datei /root/infomaniak-auth.sh. Dieses Skript wird von Certbot bei der Erneuerung aufgerufen:

#!/bin/bash
# API Token for Infomaniak
INFOMANIAK_API_TOKEN="YOUR_API_TOKEN_HERE"
# Update DNS record via Infomaniak API plugin
/usr/bin/certbot \
  --authenticator dns-infomaniak \
  --server https://acme-v02.api.letsencrypt.org/directory \
  -d "$CERTBOT_DOMAIN" \
  --agree-tos

Machen Sie das Skript ausführbar:

chmod +x /root/infomaniak-auth.sh

 

6. Reinigungsskript (infomaniak-clean.sh)

Erstellen Sie die Datei /root/infomaniak-clean.sh, um das Verfahren abzuschließen:

#!/bin/bash
# Optional: Cleanup operations after challenge
exit 0

Machen Sie das Skript ausführbar:

chmod +x /root/infomaniak-clean.sh

 

7. Konfiguration der automatischen Erneuerung

Bearbeiten oder erstellen Sie die folgende Konfigurationsdatei: /etc/letsencrypt/renewal/example.com.conf.

cert = /etc/letsencrypt/live/example.com/cert.pem
privkey = /etc/letsencrypt/live/example.com/privkey.pem
chain = /etc/letsencrypt/live/example.com/chain.pem
fullchain = /etc/letsencrypt/live/example.com/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 = YOUR_ACCOUNT_ID
key_type = rsa

 

8. Test und Automatisierung (Cron)

Bevor Sie es automatisieren, überprüfen Sie, ob alles mit einer Simulation korrekt funktioniert:

certbot renew --dry-run

Wenn der Test erfolgreich ist, fügen Sie diese Cron-Aufgabe hinzu, um die Verlängerung alle X Tage zu überprüfen:

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

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

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

War diese FAQ nützlich?