Sinnvollerweise sollte die Nutzung von Zertifikaten für den Serverbetrieb automatisiert werden, um den Administrationsaufwand zu reduzieren und Hinweise auf abgelaufene Zertifikate zu vermeiden. Das RZ empfiehlt dies für alle Systeme, die länger als nur temporär betrieben werden. Hierzu kommt das inzwischen gut erprobte und stabile “Automated Certificate Management Environment (ACME)” zum Einsatz.
Vorgehen:
Es wird in den einzelnen Gliederungen bzw. Zuständigkeitsbereichen ein Admin bestimmt, der für eine oder mehrere Subdomain(s), z.B. physik.uni-freiburg.de zuständig ist. Dieser wendet sich an die PKI Stelle (pki@rz.uni-freiburg.de) des RZs und lässt sich einen ACME-Account einrichten.
Die beantragte Host-Domäne wird dann vom Rechenzentrum im Sectigo-Portal unterhalb der Domäne “uni-freiburg.de” hinzugefügt.
Es gibt eine ganze Reihe von Tools, die mit dem ACME-Server von Sectigo kommunizieren können und dabei für viele Standarddienste bereits Module enthalten, um diese zu konfigurieren (z.B. Apache, Nginx, …). Eine Übersicht über diverse ACME Clients findet sich unter http://acmeclients.com. Ein weiterer, guter Einstiegspunkt hierfür ist zudem https://certbot.eff.org oder auch https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-20-04 Der Client ist für viele Betriebssysteme verfügbar, zudem können auf der Website Konfigurationsdateien erstellt werden.
Diese Tools können einerseits direkt auf dem Server laufen, der mit dem Zertifikat arbeitet. Zudem können sie aber auch für eine ganze Serverlandschaft mit unterschiedlichen Administratoren auf einer dedizierten Maschine installiert werden, um die Zertifikate auf diese Weise dort zu beziehen und dann automatisiert zu verteilen.
Auf dem System wird dann das jeweilige ACME-Tool konfiguriert, wofür die folgenden Informationen benötigt werden (Username, Passwort, ACME-Server)
Beispiel für certbot (Linux):
/etc/letsencrypt/cli.ini
max-log-backups = 0
email = <userid>@rz.uni-freiburg.de
agree-tos = true
server = https://acme.sectigo.com/v2/GEANTOV
eab-kid = <eab-kid>
eab-hmac-key = <hmac>
/etc/systemd/system/certbot-renewal.timer
[Unit]
Description=Timer for Certbot Renewal
[Timer]
OnBootSec=300
OnUnitActiveSec=1d
[Install]
WantedBy=multi-user.target
/etc/systemd/system/certbot-renewal.service
[Unit]
Description=Certbot Renewal
[Service]
ExecStart=/usr/bin/certbot renew –post-hook „systemctl restart nginx“