Serverzertifikate automatisiert verwalten - ACME

Mit der neuen CA von Sectigo ist es möglich Zertifikate automatisiert mittels ACME-Protokoll erstellen zu lassen. Da wir die Domains (b-tu.de und tu-cottbus.de) bereits validiert haben, ist keine ACME-Challenge und damit keine Inbound-Verbindung erforderlich. Somit können auch interne Server, die nicht an der Firewall freigegeben sind mittels ACME automatisiert Zertifikate beziehen. Da das ACME-Protokoll sehr gut standardisiert ist, können beliebige Clients verwendet werden. Einzige Voraussetzung: External Account Binding muss unterstützt werden.

Beispiele für unterstützte Clients: certbot, acme.sh oder win-acme

Support in eingeschränken Maße bietet das Rechenzentrum für certbot.

Zugang beantragen

Beim Rechenzentrum registrierte Admins können die Zugangsdaten per E-Mail beantragen. Dazu schicken Sie einfach eine formlose E-Mail mit der FQDN des Servers an ca-btu@b-tu.de. Sie bekommen dann die notwendigen Werte für das externe Accountbindung (eab-kid, eab-hmac-key und Sectigo Server) zugeschickt.

Beispiel certbot

Zertifikat abrufen

> certbot certonly --standalone --non-interactive --agree-tos --email <admin.mail@b-tu.de> --server <sectigo_server> --eab-kid <Wert von EAB-KID> --eab-hmac-key <Wert von EAB-HMAC-KEY> --domain <FQDN des Servers>,<alternativer FQDN>,<alternativer FQDN>,...

 

oder mit elliptischen Kurven (ECC)

> certbot certonly --standalone --non-interactive --agree-tos --email maik.krueger@b-tu.de --key-type ecdsa --elliptic-curve secp384r1 --server <sectigo_server> --eab-kid <Wert von EAB-KID> --eab-hmac-key <Wert von EAB-HMAC-KEY> --domain <FQDN des Servers>,<alternativer FQDN>,<alternativer FQDN>,...

 

Mit den Werten von eab-kid und eab-hmac-key sind so umzugehen wie mit dem privaten Schlüssel vom Zertifikat. Wenn certbot das erste Zertifikat heruntergeladen und sich somit beim Server registriert hat, werden die beide Werte nicht mehr benötigt. certbot speichert sich die Anmeldedaten für das Zertifikat im dazugehörigen Account. Die Accountdaten sind deshalb ebenso zu schützen.

Die aktuellen Zertifikate sind dann unter /etc/letsencrypt/live/<FQDN des Servers>/ zu finden und können z.B. im Webserver direkt verlinkt werden.

Zertifikat erneuern

> certbot renew --standalone --non-interactive --agree-tos --server <sectigo_server>

 

Renew kann regelmäßig, zum Beispiel per Cronjob, aufgerufen werden. Certbot prüft daraufhin alle installierten Zertifikate auf Ihre Laufzeit. Zertifikate mit einer verbleibenen Laufzeit von weniger als 30 Tagen werden aktualisiert.

Zertifikat sperren

> certbot revoke --cert-path <Pfad zum zu sperrenden Zertifikat> --server <sectigo_server>

 

Dokumentation

Ausführliche certbot Dokumentation