4.1 KiB
dehydrated_cron
Das Skript install_dehydrated.sh
- installiert dehydrated aus dem git Repository
- erstellt notwendige Verzeichnisse und Konfigurationen
- erstellt ein Cron Job Skript dehydrated_cron.sh zur Generierung der Zertifikate
- erstellt die Skripte create_domains_file.sh, change_ssl_directives.sh und dh_tlsgen.sh im tools-Verzeichnis
- Konfiguriert einen bereits installierten Apache Webserver
Installation
Das Skript install_dehydrated.sh auf den Zielrechner kopieren und (als root) ausführen. Die Konfigurationsdateien config und _dehydrated_cron.conf im Konfigurationsverzeichnis (default: /etc/dehydrated
) gegebenenfalls anpassen. Voreingestellt ist der Testing Modus
Alle Verzeichnisse können während der Installation angegeben werden:
- DH Install Dir: hierhin wird das Repository geclont
- DH Conf Dir: Hier werden die Konfigurationdateien für das dehydrated Skript (config) und für den Cron Job (dehydrated_cron.conf) hinterlegt.
- DH Base Dir: das Hauptverzeichnis für dehydrated bzw. Let's Encrypt. Dises Verzeichnis enthält die Accountdaten für den Zugang bei Let's Encrypt, die Zertifikate und Keys, das Skript hook.sh und die Datei domains.txt, mit den zu erstellenden Zertifikatsnamen und -aliasen. Im Unterverzeichnis cron liegt das Cronskript dehydrated_cron.sh, im Unterverzeichnis tools die Skripte change_ssl_directives.sh, create_domains_file.sh und dh_tlsgen.sh.
Während Installation kann angegeben werden, wohin der Cronjob installiert werden soll: in das Verzeichnis /etc/cron.d/
oder als root cronjob angehängt an die datei /var/spool/cron/crontabs/root
.
Das Installationsskript überschreibt keine vorhandenen Konfigurationen. In einer Umgebung, in der dehydrated_cron bereits installiert ist werden durch das erneute Ausführen vom install_dehydrated.sh Skripte und das git Repository von dehydrated gegebenenfalls aktualisiert. Haben sich Skripte oder das Repository geändert, so wird eine Sicherung (mit Zeitstempel) erstellt.
dehydrated_cron.sh
Der Cronjob dehydrated_cron.sh erstellt oder eneuert Zertikikate und stellt diese im Verzeichnis DH_BASE/certs/<hostname>/ zur Verfügung. Soll ein Host für einen bestimmten Service DANE unterstützen, so erstellt der Cronob die notwendigen TLSA-Records und veröffentlicht diese im Nameserver. Hierfür ist der zuständige Nameserver entsprechend vorzubereiten/zu konfigurieren (SSH-Zugang, Bereitstellung von Skripten, die die generierten TLSA-records dem Zonefile hinzufügen, die Seriennumer erhöhen und die Zone reloaden (s.u. Verzeichnis bind)).
Ausgeführt auf einer Konsole, ist das Skript informativ, ausgeführt als Cronjob werden nur dann Ausgaben produziert, falls Zertifikate ausgestellt/erneuert wurden oder Fehler aufgetreten sind.
Tools
Es werden drei Hilfs-Skripte im Verzeichnis DH_BASE/tools zur Verfogung gestellt:
- create_domains_file.sh: sucht in den VHost Konfigurationen nach Hosts, für die ein Zertifikat erstellt werden kann/soll und trägt common name sowie eventuell alternative names in eine Zeile der Datei DH_BASE/domains.txt ein. Diese Datei wird von dehydrated eingelesen um die entsprechenden Zertifikate zu generieren (falls sie noch nicht existieren oder bald abgelaufen sind).
- change_ssl_directives.sh: Setzt in den Direktiven
SSLCertificateFile
undSSLCertificateKeyFile
die entsprchenden Pfade zum Zertifikat/Key - dh_tlsgen.sh : Generiert _TLSA__Records für hostname:port. So kann beispielsweise überprüft werden, ob durch den Cronjob die korrekten Records im Nameserver eingetragen wurden.
(Repository-)Verzeichnis tools-bind
In diesem Verzeichnis liegen drei Skripte, die für die Bereitstellung von TLSA Records benötigt werden. Diese Scripte müssen sich auf dem zuständigen Nameserver befinden und über SSH vom Cronjob dehydrated_cron.sh ausgeführt werden können. Entsprechende Parameter können in der Konfigurationsdatei dehydrated_cron.conf angepasst werden. Die ist nur dann notwendig, wenn für einen Service DANE Unterstützung implementiert ist.
- bind_get_domain_by_hostname.sh
- bind_set_renew_tlsa.sh
- bind_set_new_serial.sh