Automated Certificate Management Environment (ACME) erklärt
Das ACME-Protokoll automatisiert die Verwaltung des Lebenszyklus von PKI-Zertifikaten, reduziert manuellen Aufwand und Risiken. Es vereinfacht Ausstellung, Erneuerung und Widerruf von Zertifikaten mit sicheren JSON-Nachrichten über HTTPS und sorgt für effiziente IT-Operationen.
Inhaltsverzeichnis
Was ist das ACME-Protokoll?
Das Automated Certificate Management Environment-Protokoll (ACME) ist ein Protokoll zur Automatisierung der Kommunikation zwischen Zertifizierungsstellen (CAs) und den Webservern, E-Mail-Systemen, Benutzergeräten und allen anderen Orten, an denen Public Key Infrastructure-Zertifikate (PKI) verwendet werden, während des gesamten Lebenszyklus eines Zertifikats. Für das ACME-Protokoll fallen keine Lizenzgebühren an, und IT-Teams benötigen nur sehr wenig Zeit, um die Automatisierung der Zertifikatsverwaltung zu konfigurieren und auszuführen, was es zu einer zunehmend eingesetzten Komponente der Unternehmenssicherheit macht.
Die Internet Security Research Group (ISRG) hat das ACME-Protokoll ursprünglich für ihren eigenen Zertifikatsdienst entwickelt und das Protokoll als vollwertigen Internetstandard in RFC 8555 von ihrer eigenen, von der IETF eingesetzten Arbeitsgruppe veröffentlicht. Die ACME v2 API ist die aktuelle Version des Protokolls, die im März 2018 veröffentlicht wurde. (Die vorherige Version, ACME v1, wurde im April 2016 veröffentlicht und ist inzwischen veraltet.)
Die Grundlage für die Ausstellung von PKI-Zertifikaten ist, dass Zertifizierungsstellen wie Sectigo als vertrauenswürdig gelten, um zu authentifizieren, dass ein Zertifikatsnutzer die mit dem PKI-Zertifikat verbundenen Identitäten und Domainnamen rechtmäßig vertritt. Der Prozess zum Austausch der Informationen, die die Zertifizierungsstelle benötigt, um diese Authentifizierung durchzuführen und Zertifikate auszustellen, und die der Benutzer anschließend bereitstellt, wird mithilfe des ACME-Protokolls automatisiert, anstatt diese Informationen manuell zu kommunizieren. Neben dem Prozess der Zertifikatsausstellung ermöglicht das Protokoll auch andere Anwendungsfälle des Zertifikatslebenszyklus-Managements wie die Sperrung und Erneuerung von Zertifikaten mithilfe einfacher JSON-formatierter Nachrichten über verschlüsselte HTTPS-Kommunikation.
Automatisiertes Protokoll – Vorteile und Anwendungsfälle
Es gibt zwar keine stärkere und benutzerfreundlichere Authentifizierungs- und Verschlüsselungslösung als die digitale Identität, die von PKI bereitgestellt wird, doch die Herausforderung für vielbeschäftigte IT-Teams besteht weiterhin darin, dass die manuelle Bereitstellung und Verwaltung von Zertifikaten zeitaufwendig ist und unnötige Risiken mit sich bringen kann. Unabhängig davon, ob ein Unternehmen ein einzelnes SSL-Zertifikat für einen Webserver einsetzt oder Millionen von Zertifikaten für alle vernetzten Geräte und Benutzeridentitäten in einer Organisation verwaltet, kann der End-to-End-Prozess der Ausstellung, Konfiguration und Bereitstellung von Zertifikaten bis zu mehreren Stunden dauern. Die manuelle Verwaltung von Zertifikaten birgt für Unternehmen außerdem das erhebliche Risiko, dass Zertifikate bis zu ihrem Ablauf vergessen werden und dass es zu Lücken bei der Eigentümerschaft kommt, was zu plötzlichen Ausfällen oder dem Ausfall kritischer Geschäftssysteme sowie zu Sicherheitsverletzungen und Man-in-the-Middle-Angriffen (MITM) führt.
Da die manuelle Verwaltung von PKI-Zertifikaten viele potenzielle Fallstricke birgt, benötigen Unternehmen einen Automatisierungsstandard wie ACME, um sicherzustellen, dass Zertifikate korrekt konfiguriert und implementiert werden, ohne dass der Mensch eingreifen muss, um die Gültigkeit der einzelnen Zertifikate sicherzustellen. Diese Automatisierung trägt nicht nur zur Risikominderung bei, sondern ermöglicht es IT-Abteilungen auch, die Betriebskosten zu kontrollieren.
Warum sollte man ACME anstelle anderer Optionen verwenden?
Es gibt andere Standards für die Zertifikatsautomatisierung wie Enrollment over Secure Transport (EST) und Simple Certificate Enrollment Protocol (SCEP) sowie Lösungen im Zusammenhang mit Unternehmensarchitekturen wie Microsoft Active Directory. Warum ist ACME für viele Unternehmen ein immer beliebterer Automatisierungsstandard?
Der Hauptgrund liegt in der Komplexität und dem Umfang der meisten Zertifikatsanforderungen von Unternehmen. Unternehmen verlassen sich auf PKI-Zertifikate, um alles zu authentifizieren und zu verschlüsseln, von Webservern in der Cloud und vor Ort, vernetzten Geräten, mobilen Geräten, Benutzeridentitäten, E-Mail-Systemen, Netzwerkgeräten, IoT-Geräten, DevOps-Umgebungen und mehr. Die Verwaltung dieses riesigen Ökosystems wird noch schwieriger, da Unternehmen oft über mehrere IT-Infrastrukturen hinweg arbeiten, nicht nur über eine zentralisierte Architektur.
IT-Teams verlassen sich immer mehr auf ACME, um ihre Herausforderungen in Bezug auf Umfang und Komplexität zu bewältigen, da es Folgendes bietet:
- einen offenen Standard mit einem vollständigen Satz an Befehlen und einer robusten Fehlerbehandlung, wodurch die Übernahme sowohl durch das Unternehmen als auch durch CAs erleichtert wird
- erstklassige TLS- und andere PKI-Sicherheitspraktiken für IT-Teams, die mit der Implementierung und Verwaltung gültiger PKI-Zertifikate und vertrauenswürdiger CAs beauftragt sind, die strenge Authentifizierungsverfahren einhalten
- kontinuierliche Verbesserungen und Unterstützung durch eine Community, die nicht von einem einzelnen Anbieter oder einer einzelnen Organisation kontrolliert wird
- Flexibilität beim Hinzufügen und Unterstützen von Backup-Zertifizierungsstellen
- geringe Kosten, da die Nutzung kostenlos ist
Wie funktioniert das ACME-Protokoll?
Die beiden Kommunikationseinheiten in ACME sind der ACME-Client und der ACME-Server. Der ACME-Client verwendet das Protokoll, um Zertifikatsverwaltungsaktionen wie Ausstellung oder Widerruf anzufordern. Der Client läuft auf dem Server oder Gerät des Benutzers, der bzw. das durch das PKI-Zertifikat geschützt werden muss. Der ACME-Server läuft bei einer Zertifizierungsstelle wie Sectigo. Er beantwortet die Client-Anfragen und führt die angeforderten Aktionen aus, sobald der Client autorisiert ist. Die Kommunikation zwischen den beiden basiert auf JSON-Nachrichten über eine sichere HTTPS-Verbindung.
Erfahren Sie noch heute mehr über die Sectigo ACME-Integration.
Das andere wichtige Element des Prozesses ist der Authentifizierungsschritt, der als ACME-Challenge bezeichnet wird. Die Zertifizierungsstelle kann erst dann ein Zertifikat ausstellen oder die Anforderung abschließen, wenn die Challenge bestanden wurde. Die Authentifizierungsanforderungen für diesen Validierungsprozess stellen sicher, dass Zertifikate nur an vertrauenswürdige Benutzer ausgegeben werden. Derzeit gibt es zwei Arten von ACME-Challenges:
HTTP-Challenges
Wenn eine Anfrage von einem ACME-Client vom ACME-Server empfangen wird, sendet die Zertifizierungsstelle ein Token an den ACME-Client zurück, das auf dem Server installiert werden soll. Anschließend erstellt der Client eine Datei, die dieses Token enthält, und fügt ihr einen Fingerabdruck des Autorisierungsschlüssels hinzu, der während der Einrichtung generiert wurde. Die Dateistruktur lautet (Token) || '.' || (Fingerabdruck des Autorisierungsschlüssels). Sobald die Datei installiert ist, informiert der Client die Zertifizierungsstelle, die die Datei abruft und validiert und dann die Anforderung abschließt.
DNS-Herausforderungen
Diese Herausforderung umfasst einen zusätzlichen Verifizierungsfaktor, indem der ACME-Agent einen bestimmten Wert in einen TXT-Eintrag im DNS-Bereich der Domain einfügen muss. Der Authentifizierungsprozess ähnelt den HTTP-Herausforderungen, bei denen die Zertifizierungsstelle ein Token an den Client sendet und der Fingerabdruck des Autorisierungsschlüssels angehängt wird, um die Herausforderungsdatei zu erstellen und zu installieren. Sobald der Agent die Zertifizierungsstelle darüber informiert, dass die Herausforderung erfüllt wurde, versucht die Zertifizierungsstelle, eine DNS-Suche durchzuführen und den TXT-Eintrag abzurufen.
Der gesamte Challenge-Prozess ist schnell und dauert in der Regel weniger als 15 Sekunden für beide Typen. Gemäß RFC 8555 sollten Administratoren jedoch sicherstellen, dass die Servereinrichtung abgeschlossen ist, bevor der ACME-Client Anfragen sendet, da es nicht ungewöhnlich ist, dass Abfragen von ACME-Servern fehlschlagen, während eine Ressource noch auf den Systemen der Benutzer eingerichtet wird. Beispielsweise dauert es eine gewisse Zeit, bis DNS- oder HTTP-Informationen oder Firewall-Regeln auf allen Servern verbreitet sind, und der ACME-Server meldet möglicherweise einen Fehler, wenn er ein System abfragt, bevor die Verbreitung abgeschlossen ist. Der ACME-Server bei der Zertifizierungsstelle betrachtet die Herausforderung als „in Bearbeitung“ und wiederholt die Abfrage alle 5 bis 10 Sekunden, solange der Client dies versucht. Daher wird empfohlen, dass die Clients bei der Benutzereinrichtung erst dann auf Herausforderungen reagieren, wenn sie davon ausgehen, dass die Abfragen des Servers erfolgreich sind, da zwischen dem Hochladen der Datei oder des DNS-Eintrags und dem Abruf durch die Zertifizierungsstelle eine geringe Verzögerung auftreten kann.
So richten Sie einen Client ein
Um einen ACME-Client einzurichten, entscheidet der Benutzer zunächst, welchen Client er verwenden möchte, und installiert dann den Client auf der Domäne/dem Server, um das ACME-Protokoll zu verwenden. Da Flexibilität eine Stärke ist, laufen Clients in fast jeder Programmiersprache und Umgebung, die ein Unternehmen haben kann:
- Bash
- C/C++
- Clojure
- Docker
- Go
- HAProxy
- Java
- Microsoft Azure
- nginx
- Node.js
- OpenShift
- Perl
- Python
- Ruby
- Rust
- Windows/IIS
Wie bei Open-Source-Standards gibt es für keine der CAs proprietäre Clients. So können Organisationen die gewünschten CAs auswählen, solange diese CA ACME unterstützt. Hier ist eine Liste der beliebtesten ACME v2-Clients, die auf GitHub zu finden sind:
- Certbot von der Electronic Frontier Foundation (EFF) und gesponsert von Sectigo
- ACMESharp
- acme-client
- GetSSL
- Posh-ACME
- Caddy
- Sewer
- nginx ACME
- node-acme-lambda
Der nächste Schritt besteht darin, den ACME-Client zu konfigurieren und ihn dann auf dem Server zu installieren, auf dem die PKI-Zertifikate bereitgestellt werden sollen. Der Konfigurationsprozess besteht aus einfachen 6 Schritten und dauert nur wenige Minuten:
- Der Client fordert den Benutzer auf, die zu verwaltende(n) Domain(s) einzugeben.
- Sie wählen die gewünschte Zertifizierungsstelle aus einer Liste von ACME-unterstützenden Zertifizierungsstellen aus, die vom Client bereitgestellt wird.
- Sobald eine Zertifizierungsstelle ausgewählt wurde, kontaktiert der Client die Zertifizierungsstelle und generiert ein privates Schlüsselpaar.
- Die Zertifizierungsstelle gibt die ACME-Challenge aus, entweder HTTP oder DNS, um die Benutzeridentität zu authentifizieren.
- Zusätzlich zu den Challenges sendet die CA auch eine zufällig generierte Zahl, die als Nonce bezeichnet wird. Der Client signiert mit dem gerade generierten privaten Schlüssel, um den Besitz des Schlüsselpaars nachzuweisen.
- Sie legen fest, wie häufig der Client die CA kontaktiert, um das Zertifikat zu erneuern.
Sobald die CA bestätigt, dass die Challenge bestanden wurde und die Signatur authentisch ist, ist der ACME-Client offiziell berechtigt, im Namen der validierten Domänen zu handeln.
Wie unterstützt ACME das Certificate Lifecycle Management?
Die Ausstellung, Erneuerung und der Widerruf von PKI-Zertifikaten mithilfe des ACME-Protokolls ist mithilfe gängiger Zertifikatsverwaltungsprozesse unkompliziert. Der Client sendet einfach Standardnachrichten zur PKI-Zertifikatsverwaltung und signiert diese Zertifikate mit dem autorisierten Schlüsselpaar.
So stellen Sie ein Zertifikat aus oder erneuern es:
- Der Client erstellt eine Zertifikatsignierungsanforderung (Certificate Signing Request, CSR), mit der die Zertifizierungsstelle aufgefordert wird, ein Zertifikat für die autorisierte Domäne mit einem bestimmten öffentlichen Schlüssel auszustellen
- Die CSR enthält eine Signatur durch den privaten Schlüssel, der dem öffentlichen Schlüssel in der CSR entspricht
- Der Client signiert die gesamte CSR mit dem autorisierten Schlüssel für die Domäne, damit die Zertifizierungsstelle die Autorisierung überprüfen kann
- Die Zertifizierungsstelle überprüft beide Signaturen und stellt bei Gültigkeit ein Zertifikat für die autorisierte Domäne mit dem öffentlichen Schlüssel aus der CSR aus
- Die Zertifizierungsstelle stellt dem Client das Zertifikat aus
Die Sperrung von Zertifikaten mit ACME erfolgt über eine ähnliche Kommunikation wie die Ausstellung und Erneuerung. Der Client signiert eine Sperrungsanforderung mit dem für die Domäne autorisierten Schlüsselpaar, und die Zertifizierungsstelle überprüft, ob die Anforderung autorisiert ist. Anschließend veröffentlicht die Zertifizierungsstelle Sperrungsinformationen in den Standard-Sperrungskanälen, sodass Browser das gesperrte Zertifikat nicht akzeptieren sollten.
Welche Arten von TLS/SSL-Zertifikaten und anderen PKI-Zertifikaten werden unterstützt?
Wie bereits erwähnt, unterstützt der ACME-Standard PKI-Zertifikate für die Webserver, E-Mail-Systeme, Benutzergeräte und jeden anderen Ort, an dem PKI verwendet wird, eines Unternehmens, solange die Zertifizierungsstelle ACME für diesen PKI-Zertifikatstyp unterstützt. Beispielsweise unterstützt er SSL-Zertifikate, die unterschiedliche Authentifizierungsmodi erfordern – Zertifikate mit Domain-Validierung (DV), Organisationsvalidierung (OV) und erweiterter Validierung (EV) – wobei zu berücksichtigen ist, dass möglicherweise zusätzliche Authentifizierungsschritte erforderlich sind, die über das von ACME unterstützte Maß hinausgehen.
Da Sectigo neben Code Signing, S/MIME und anderen X.509-Zertifikaten, die ACME unterstützen, auch SSL/TLS-Zertifikate anbietet, benötigen Unternehmen auch eine Möglichkeit, das End-to-End-Lebenszyklusmanagement in großem Umfang zu automatisieren. Der Sectigo Certificate Manager unterstützt das ACME-Protokoll für ein vollständig automatisiertes Zertifikatslebenszyklusmanagement.
Möchten Sie mehr erfahren? Nehmen Sie Kontakt auf und buchen Sie eine Demo von Sectigo Certificate Manager!
Verwandte Beiträge:
Die Risiken, ACME im 90-Tage- und 47-Tage-SSL-Zeitalter zu ignorieren
Root Causes 298: Gemeinsam vorwärts gehen – Automatisierung fördern