Zum Hauptinhalt springen
  1. Posts/

Hetzner/IONOS: kostenlose SSL-Zertifikate mit certbot

·923 Wörter·5 min· loading · loading ·
Inhaltsverzeichnis

Einleitung
#

Ich sehe viele Leute, die Schwierigkeiten haben, https:// in ihrem Homelab einzurichten - in manchen Fällen kannst du es nicht vermeiden (zum Beispiel bei Vaultwarden). Mit dieser Anleitung kannst du automatisch SSL-Zertifikate für deinen Homelab-Webserver erstellen und erneuern lassen, mit Hilfe von Lets Encrypt und certbot.

Wenn du stattdessen den “NGINX Proxy Manager” anstelle von certbot im Terminal verwenden möchtest, lies diesen Blogbeitrag: SSL-Zertifikate mit NGINX Proxy Manager (IONOS oder Hetzner).

Voraussetzungen
#

  • eine Domain, die dir gehört
  • ein Konto bei Hetzner oder IONOS
  • Terminal-Zugang zu deinem Server

DNS und API-Token
#

Unten findest du die Anleitungen für Hetzner oder IONOS. Wähle deinen bevorzugten Anbieter.

Hetzner

Diese Anleitung wurde für die neue “Hetzner Console” aktualisiert, “Hetzner DNS” wird von Hetzner eingestellt (https://dns.hetzner.com).

  1. Zuallererst starten wir bei Hetzner. Logge dich in dein Konto ein und wechsle oben rechts in den Bereich “Console”. Diese ist auch unter https://console.hetzner.com/projects erreichbar.
  2. Öffne dein bestehendes Projekt oder erstelle ein neues, falls du noch keines hast.
  3. Wechsle rechts unter “Networking” zu “DNS”.
  4. Falls du deine Domain noch nicht in der Hetzner Console hast, richte sie mit “DNS-Zone hinzufügen” ein:
  5. hetzner-dns-2.
  6. Gib deine DNS-Zone ein (in meinem Beispiel “torminal.com”) und klicke auf “Fortsetzen”.
  7. Du musst die Nameserver von Hetzner beim Hoster deiner Domain hinzufügen. Schaue bitte nach Anleitungen für deinen spezifischen Hoster (etwa: “{Name des Hosters} benutzerdefinierte Nameserver für Domain hinzufügen”).
  8. Danach ist deine neue Zone in der DNS-Console verfügbar und Hetzner ist nun der Haupt-DNS-Manager für deine Domain.
  9. Klicke im Dashboard der Console auf “Security”.
  10. Wähle in “Security” die Option “API-Tokens” und “Add API-Token” oben rechts:
  11. hetzner-api-1
  12. Gib unter “Beschreibng” einen Namen für dein Token ein, wähle “Lese und Schreib”-Berechtigungen und klicke auf “Access-Token erstellen”.
  13. Speichere deinen Token sicher ab.

IONOS
  1. Zuallererst starten wir bei IONOS. Logge dich in dein Konto ein.
  2. Falls noch nicht geschehen, musst du Zugriff auf die IONOS-API im IONOS API Shop erhalten.
  3. “Kaufe” das kostenlose API Add-On.
  4. Gehe als Nächstes zum API-Key-Portal.
  5. Füge einen neuen Key hinzu und gib ihm einen Namen (zum Beispiel: “homelab”).
  6. Speichere das Token sicher ab.


Certbot: SSL-Zertifikat einrichten
#

Certbot installieren
#

  1. Verbinde dich mit dem Terminal deines Servers (ssh).
  2. Installiere den snap-Paketmanager: sudo apt install snapd
  3. Installiere certbot mit snap: sudo snap install --classic certbot
  4. Füge certbot zu PATH hinzu: sudo ln -s /snap/bin/certbot /usr/bin/certbot

Unten findest du die Anleitungen für Hetzner oder IONOS. Wähle deinen bevorzugten Anbieter.

Hetzner

Certbot für Hetzner konfigurieren
#

Quelle: Github - certbot-dns-hetzner-cloud

  1. Installiere certbot-dns-hetzner-cloud mit snap: sudo snap install certbot-dns-hetzner-cloud
  2. Verbinde certbot-dns-hetzner-cloud und certbot:
   sudo snap set certbot trust-plugin-with-root=ok
   sudo snap connect certbot:plugin certbot-dns-hetzner-cloud
  1. Prüfe, ob certbot-dns-hetzner-cloud für certbot verfügbar ist: certbot plugins
  2. Du solltest * dns-hetzner-cloud in der Plugin-Liste sehen.
  3. Füge nun deinen API-Schlüssel auf dem Server hinzu. Verwende zum Beispiel /etc/hetzner.ini:
   nano /etc/hetzner.ini
  1. und füge deinen Schlüssel im folgenden Format hinzu:
   dns_hetzner_cloud_api_token = fuegedeinentokenhierein
  1. Ändere die Dateiberechtigungen der Schlüssel-Datei auf 600:
   chmod 0600 /etc/hetzner.ini

Ein neues Zertifikat anfordern
#

  1. Führe den folgenden Befehl aus und gib deine Domain anstelle von <example.com> ein:
   sudo certbot certonly --agree-tos --authenticator dns-hetzner-cloud --dns-hetzner-cloud-credentials /etc/hetzner.ini -d <example.com>
  1. Gib eine E-Mail-Adresse ein (falls angefordert) oder überspringe diesen Schritt.
  2. Nach einiger Zeit solltest du dein Zertifikat erhalten:
  3. certbot-hetzner-command
  4. Du findest deine Fullchain (Zertifikat) und den Schlüssel unter /etc/letsencrypt/live/example.com/fullchain.pem und ../privkey.pem, die du nun verwenden kannst!

IONOS

Certbot für IONOS konfigurieren
#

Quelle: Github - certbot-dns-ionos

  1. Installiere certbot-dns-ionos mit snap: sudo snap install certbot-dns-ionos
  2. Verbinde certbot-dns-ionos und certbot:
   sudo snap set certbot trust-plugin-with-root=ok
   sudo snap connect certbot:plugin certbot-dns-ionos
  1. Prüfe, ob certbot-dns-ionos für certbot verfügbar ist: certbot plugins
  2. Du solltest * dns-ionos in der Plugin-Liste sehen.
  3. Füge nun deinen API-Schlüssel auf dem Server hinzu. Verwende zum Beispiel /etc/ionos.ini:
   nano /etc/ionos.ini
  1. und füge deinen Schlüssel im folgenden Format hinzu:
   dns_ionos_prefix=DEIN_PREFIX
   dns_ionos_secret=DEIN_SECRET
   dns_ionos_endpoint=https://api.hosting.ionos.com
  1. Ändere die Dateiberechtigungen der Schlüssel-Datei auf 600:
   chmod 0600 /etc/ionos.ini

Ein neues Zertifikat anfordern
#

  1. Führe den folgenden Befehl aus und gib deine Domain anstelle von <example.com> ein:
   certbot certonly \
   --agree-tos \
   --authenticator dns-ionos \
   --dns-ionos-credentials /etc/ionos.ini \
   --dns-ionos-propagation-seconds 60 \
   --agree-tos \
   --rsa-key-size 4096 \
   -d <example.com>
  1. Gib eine E-Mail-Adresse ein (falls angefordert) oder überspringe diesen Schritt.
  2. Nach einiger Zeit solltest du dein Zertifikat erhalten:
  3. certbot-ionos-command
  4. Du findest deine Fullchain (Zertifikat) und den Schlüssel unter /etc/letsencrypt/live/example.com/fullchain.pem und ../privkey.pem, die du nun verwenden kannst!

Die Erneuerung automatisieren
#

Um die Erneuerung des Zertifikats zu automatisieren, füge einfach den Erneuerungsbefehl zu deinem Crontab hinzu.

  1. Öffne deinen Crontab: crontab -e
  2. Füge den Erneuerungsbefehl am Ende der Datei hinzu:
   # Certbot Lets Encrypt Erneuerung
   0 3 * * 6  root    /usr/bin/certbot renew >> /var/log/certbot-renew.log 2>&1 
  1. Dies führt die Erneuerung jeden Samstag um 3 Uhr morgens aus, außerdem wird die Ausgabe in /var/log/certbot-renew.log protokolliert.
  2. Hinweis: Wenn du zum Beispiel Apache2 oder NGINX verwendest, vergiss nicht, den Dienst nach der Erneuerung neu zu starten (im Crontab). Ich habe dies einfach einige Minuten nach der Erneuerung hinzugefügt:
   10 3 * * 6  root    systemctl restart nginx

Nice to know
#

Einige hilfreiche Informationen über certbot, die dir helfen könnten:

  • Du kannst mehrere Subdomains mit -d im certbot-Befehl eingeben, zum Beispiel: -d <example.com> -d <sub1.example.com> -d <sub2.example.com>
  • Du kannst auch Wildcard-Zertifikate mit * anfordern: -d <*.example.com>

Probleme beheben
#

Falls du einen Fehler mit certbot beim Anfordern des SSL-Zertifikats bekommst:

  • Ist dein API-Token korrekt eingegeben und gespeichert?
  • Kann dein Server den API-Dienst von Hetzner / IONOS erreichen?
  • Für Hetzner: Hast du deine Domain erfolgreich zur DNS-Konsole hinzugefügt und die Hetzner-Nameserver bei deinem Domain-Hoster gesetzt? Du kannst das testen, indem du manuell einen Eintrag in der DNS-Konsole von Hetzner hinzufügst und ein Online-DNS-Lookup-Tool verwendest, um zu prüfen, ob der Eintrag erfolgreich registriert wurde.
torminal
Autor
torminal
IT enthusiast

Verwandte Artikel

Hetzner/IONOS: Automatische Erneuerung von kostenlosen SSL-Zertifikaten mit dem NGINX Proxy Manager
620 Wörter·3 min· loading · loading
Automatisiere die Erneuerung von kostenlosen SSL-Zertifikaten mit Hetzner oder IONOS, Let&rsquo;s Encrypt und NGINX Proxy Manager in deinem Homelab!
Skrädda: Pegboard Generator für 3D-Druck
342 Wörter·2 min· loading · loading
Brauchst du eine spezifische Lochplatte für den 3D-Druck? Nutze den Skrädda-Generator (basierend auf IKEA SKADIS), um kostenlos deine gewünschten Maße zu erhalten!
Homelab-Management mit einem Telegram-Chatbot
598 Wörter·3 min· loading · loading
Dieses Projekt gibt dir die Möglichkeit, Shell-Befehle auf einem Linux-Host von einem Telegram-Bot aus auszuführen. WakeOnLan-Support, Status von Dienstan abfragen etc.!