43 lines
4.1 KiB
Markdown
43 lines
4.1 KiB
Markdown
## 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` und `SSLCertificateKeyFile` 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_ |