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.
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.
Diese Anleitung wurde für die neue “Hetzner Console” aktualisiert, “Hetzner DNS” wird von Hetzner eingestellt (https://dns.hetzner.com).Hetzner
IONOS
Certbot: SSL-Zertifikat einrichten #
Certbot installieren #
- Verbinde dich mit dem Terminal deines Servers (ssh).
- Installiere den snap-Paketmanager:
sudo apt install snapd - Installiere certbot mit snap:
sudo snap install --classic certbot - 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.
Quelle: Github - certbot-dns-ionosHetzner
Certbot für Hetzner konfigurieren
#
sudo snap install certbot-dns-hetzner-cloud sudo snap set certbot trust-plugin-with-root=ok
sudo snap connect certbot:plugin certbot-dns-hetzner-cloud
certbot plugins* dns-hetzner-cloud in der Plugin-Liste sehen./etc/hetzner.ini: nano /etc/hetzner.ini
dns_hetzner_cloud_api_token = fuegedeinentokenhierein
chmod 0600 /etc/hetzner.ini
Ein neues Zertifikat anfordern
#
sudo certbot certonly --agree-tos --authenticator dns-hetzner-cloud --dns-hetzner-cloud-credentials /etc/hetzner.ini -d <example.com>
/etc/letsencrypt/live/example.com/fullchain.pem und ../privkey.pem, die du nun verwenden kannst!IONOS
Certbot für IONOS konfigurieren
#
sudo snap install certbot-dns-ionos sudo snap set certbot trust-plugin-with-root=ok
sudo snap connect certbot:plugin certbot-dns-ionos
certbot plugins* dns-ionos in der Plugin-Liste sehen./etc/ionos.ini: nano /etc/ionos.ini
dns_ionos_prefix=DEIN_PREFIX
dns_ionos_secret=DEIN_SECRET
dns_ionos_endpoint=https://api.hosting.ionos.com
chmod 0600 /etc/ionos.ini
Ein neues Zertifikat anfordern
#
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>
/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.
- Öffne deinen Crontab:
crontab -e - 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
- Dies führt die Erneuerung jeden Samstag um 3 Uhr morgens aus, außerdem wird die Ausgabe in /var/log/certbot-renew.log protokolliert.
- 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?
- Hetzner: https://dns.hetzner.com/api/v1
- IONOS: https://api.hosting.ionos.com/dns
- 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.