Das Automatic Certificate Management Environment (ACME) ist ein Protokoll zur automatischen Prüfung der Inhaberschaft einer Internet-Domain und dient der vereinfachten Ausstellung von digitalen Zertifikaten für TLS-Verschlüsselung. Ziel der Umgebung ist es, die Zertifikate automatisiert und sehr kostengünstig auszustellen.
Mit einem ACME-Account können die Zertifikate automatisiert erneuert werden. Dazu ist ein Zugriff von dem Rechner ins Internet notwendig. Es ist NICHT notwendig, dass der Rechner aus dem Internet erreichbar ist.
Ein ACME-Account kann für eine Subdomain von hhu.de oder uni-duesseldorf.de erstellt werden. Weitere Domains neben hhu.de und uni-duesseldorf.de werden nicht unterstützt.
Ein ACME-Account erlaubt immer auch das Erstellen von Zertifikaten für alle darunterliegenden Subdomains (*.meine-subdomain.hhu.de).
Um einen ACME-Account zu erhalten, schreib bitte eine signierte E-Mail an felix.gorschlueter@hhu.de und ca@hhu.de im CC mit folgenden Daten:
- E-Mailadresse einer verantwortlichen Person / Stelle (falls nicht identisch mit AntragstellerIn)
- Deine Unikennung
- Einen Namen / eine kurze Bezeichnung des Dienstes zur Einordnung
- Gewünschte Domains
- Fakultät oder zentrale Einrichtung
Wenn wir nicht nachvollziehen können, ob die Person für die Domains berechtigt ist, halten wir uns vor, zunächst das zuständige Dekanat oder den/die Leiter:in der zentralen Einrichtung zu kontaktieren.
Die Einrichtung ist ziemlich einfach. Du bekommst einen Link zugeschickt, in der Art:
How to use External Account Binding (EAB) with Certbot. When ACME client (certbot) is initialized, we specify ACME URL (–-server), MAC Key (–-eab-hmac-key), Mac ID (–-eab-kid). Example command line: certbot certonly --standalone --non-interactive --agree-tos --email mailboxa@domain.com --server https://acme.sectigo.com/v2/OV --eab-kid aBcDefghiJk1234lm567no --eab-hmac-key ZYx987wV65ut_langer-Schlüssel --domain example.hhu.de,example.uni-duesseldorf.de --cert-name DVcert
Wie oben beschrieben sind die Parameter: server, eab-hmac-key und eab-kid durch die Konfiguration vorgegeben. Die nicht spezifizierten command-line Optionen müssen den individuellen Gegebenheiten angepasst werden.
Mit dem Parameter domain kann ein oder mehrer FQDNs angeben werden. Dabei wird der erste Name als Subject, alle weiteren als Subject Alternative Name gesetzt
Eine Certbot-Dokumentation gibt es z.B. hier:
https://eff-certbot.readthedocs.io/en/stable/using.html
Mehrere Zertifikate auf demselben Server
To Do - Testen mit Harica
Wir haben seit der Umstellung auf die neue CA noch nicht getestet, wie es sich mit der Erstellung weiterer Zertifikate verhält. Erfahrungen gerne an ca@hhu.de melden. Nachfolgender Text betrifft weiterhin die alte CA.
Ist bereits ein Zertifikat mittels certbot auf einem Server angelegt worden, schlägt die Erstellung weiterer Zertifikate mit anderen Zugangsdaten fehl, selbst wenn die Zugangsdaten korrekt sind. Die Fehlermeldung lautet in diesem Fall:
acme.messages.Error: urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: The identifiers are not all linked to the same preauthorized Subject organization name/address An unexpected error occurred: The client lacks sufficient authorization :: The identifiers are not all linked to the same preauthorized Subject organization name/address Please see the logfiles in /var/log/letsencrypt for more details.
Dies liegt daran, dass certbot die verwendeten Zugangsdaten unter /etc/letsencrypt/accounts/acme.sectigo.com/v2/OV/ speichert, damit z.B. Verlängerungen ohne Eingabe der Zugangsdaten erfolgen können. Allerdings werden dort abgelegte Accounts gegenüber den auf der Kommandozeile angegebenen Zugangsdaten bevorzugt. Das Problem wird auch in den FAQ der DFN-PKI beschrieben.
Um also ein weiteres Zeritifikat mit einem anderen Account zu erstellen, muss der Inhalt des Ordners /etc/letsencrypt/accounts/acme.sectigo.com/v2/OV/ zunächst an eine andere Stelle verschoben werden, z.B: das Homeverzeichnis. Anschließend sollte es problemlos möglich sein, mit dem bekannten Befehl und den neuen Zugangsdaten ein weiteres Zertifikat zu erstellen. Zum Schluss einfach die ursprünglichen Accounts wieder in /etc/letsencrypt/accounts/acme.sectigo.com/v2/OV/ zurück verschieben. Jetzt existieren beide Accounts parallel, und alle vorhandenen Zertifikate können auf einmal ohne das Eingeben der verschiedenen Zugangsdaten mit certbot renew --force-renew aktualisiert werden.