In diesem Blog erläutern die Experten von Keyfactor , wie das ACME-Protokoll funktioniert, warum es für moderne PKI- und Zertifikatsmanagement-Implementierungen wichtig ist und wie es Unternehmen bei der Automatisierung helfen kann.
Was ist ACME?
ACME (Automated Certificate Management Environment) ist ein Protokoll, das es ermöglicht, die Ausstellung und Erneuerung von Zertifikaten zu automatisieren, und zwar ohne menschliche Interaktion.
Die Internet Security Research Group (ISRG) hat das ACME-Protokoll ursprünglich für ihren eigenen Zertifikatsdienst Let's Encrypt entwickelt, eine freie und offene Zertifizierungsstelle (CA), die kostenlose Domain Validated (DV) Zertifikate anbietet. Heute unterstützen verschiedene andere CAs, PKI-Anbieter und Browser ACME, um verschiedene Arten von Zertifikaten zu unterstützen.
ACME-Versionen
Das ursprüngliche ACME-Protokoll, v1, wurde 2016 eingeführt und bot einen rationalisierten Ansatz für den Erhalt von SSL/TLS Zertifikaten, der allerdings auf einzelne Domains beschränkt war. Diese grundlegende Version legte den Grundstein für die automatisierte Zertifikatsverwaltung.
Ein bedeutender Schritt nach vorne wurde 2018 mit ACME v2 gemacht, indem die Fähigkeiten um Wildcard-Zertifikate erweitert wurden, eine wichtige Funktion für Unternehmen, die mehrere Subdomains verwalten. Gleichzeitig wurde der Sicherheitsrahmen des Protokolls gestärkt, um die Überprüfung der Domain-Eigentümerschaft zu verbessern und die unberechtigte Ausstellung von Zertifikaten zu verhindern.
In Anerkennung der Bedeutung des Protokolls hat die Internet Engineering Task Force (IETF) ACME im Jahr 2019 in RFC 8555 als Standard formalisiert. Diese Standardisierung führte zu einer weit verbreiteten Annahme, wobei zahlreiche Clients ACME-Unterstützung integrieren.
Es ist wichtig zu wissen, dass ACME v2 mit seinem Vorgänger nicht kompatibel ist. Daher wird ACME v1 im Juni 2021 auslaufen und einen vollständigen Übergang zum verbesserten v2-Standard markieren.
Wie funktioniert das Protokoll?
Durch den Einsatz von ACME können Unternehmen ansonsten zeitaufwändige Prozesse wie die CSR-Generierung, die Überprüfung der Domäneneigentümerschaft, die Ausstellung von Zertifikaten und die Installation rationalisieren und automatisieren.
ACME wird in erster Linie für den Erhalt von DV-Zertifikaten (Domain Validated) verwendet. Der Grund dafür ist, dass DV-Zertifikate keine erweiterte Überprüfung erfordern. Es wird lediglich die Existenz der Domäne validiert, was kein menschliches Eingreifen erfordert.
Das Protokoll kann auch verwendet werden, um höherwertige Zertifikate zu erhalten, wie z. B. organisationsvalidierte (OV) und erweiterte Validierung (EV), aber diese Fälle erfordern zusätzliche Unterstützungsmechanismen neben dem ACME-Agenten.
Ziel des ACME-Protokolls ist es, einen HTTPS-Server einzurichten und die Bereitstellung von vertrauenswürdigen Zertifikaten zu automatisieren sowie fehleranfällige manuelle Transaktionen zu vermeiden. Zur Verwendung des Protokolls werden ein ACME-Client und ein ACME-Server benötigt, die mit JSON-Nachrichten über eine sichere HTTPS-Verbindung kommunizieren.
- Der Client läuft auf jedem Server oder Gerät, das ein vertrauenswürdiges SSL/ TLS Zertifikat benötigt. Er wird verwendet, um Aktionen zur Zertifikatsverwaltung anzufordern, z. B. die Ausstellung oder den Widerruf von Zertifikaten.
- Der Server läuft bei einer Zertifizierungsstelle (CA), wie Let's Encrypt, und reagiert auf die Anfragen autorisierter Clients.
Es gibt viele verschiedene ACME-Client-Implementierungen für das Protokoll. Es ist so konzipiert, dass Unternehmen die CA ihrer Wahl wählen können, solange diese ACME unterstützt.
Let's Encrypt empfiehlt die Verwendung des Certbot-Clients, da er einfach zu bedienen ist, auf vielen Betriebssystemen funktioniert und eine hilfreiche Dokumentation enthält. Andere beliebte ACME-Clients sind auf GitHub zu finden, wie ACMESharp, acme-client, GetSSL und viele andere.
Einrichten eines ACME-Clients
Sobald Sie einen Client ausgewählt haben, ist der nächste Schritt die Installation auf der Domäne/dem Server, auf dem die Zertifikate bereitgestellt werden sollen. ACME-Clients können in fast jeder Programmiersprache und -umgebung ausgeführt werden, und der Einrichtungsprozess besteht aus nur 5 einfachen Schritten, die abgeschlossen werden müssen:
- Der Client fordert Sie auf, die zu verwaltende Domäne einzugeben.
- Der Client bietet eine Liste von Zertifizierungsstellen (CA) an, die das Protokoll unterstützen.
- Der Client kontaktiert die ausgewählte CA und erzeugt ein Autorisierungsschlüsselpaar.
- Die CA stellt DNS oder HTTPS-Challenges für den Kunden aus, um die Kontrolle über seine Domäne(n) zu demonstrieren.
- Die CA sendet eine Nonce - eine zufällig generierte Zahl - an den Agenten, die dieser mit seinem privaten Schlüssel signiert, um den Besitz des Schlüsselpaares nachzuweisen.
Abbildung 1: Prozess der Erstkonfiguration des ACME-Clients.
Sobald die CA die Authentizität des Clients verifiziert hat, kann der ACME-Client Zertifikate für die validierte(n) Domäne(n) anfordern.
Verwendung von ACME zur Bereitstellung und Verwaltung von Zertifikaten
Das Ausstellen und Erneuern von Zertifikaten mit dem ACME-Protokoll ist einfach. Der Client sendet einfach Anfragen zur Zertifikatsverwaltung und signiert sie mit dem autorisierten Schlüsselpaar.
Ausstellung/Erneuerung: Ein Webserver, auf dem der ACME-Agent installiert ist, generiert einen CSR, sendet ihn an die CA und diese stellt ihn aus. Der Prozess für die Ausstellung und Erneuerung funktioniert ähnlich:
- Der Agent sendet einen Certificate Signing Request (CSR) an die CA und beantragt die Ausstellung eines Zertifikats für die autorisierte Domäne mit einem bestimmten öffentlichen Schlüssel.
- Die CSR wird mit dem entsprechenden privaten Schlüssel und dem autorisierten Schlüssel für die Domäne signiert.
- Wenn die CA die Anfrage erhält, prüft sie beide Signaturen, stellt ein Zertifikat für die autorisierte Domäne mit dem öffentlichen Schlüssel aus der CSR aus und sendet es an den Agenten zurück.
Abbildung 2: Ausstellung/Verlängerung von Zertifikaten. Quelle: Let's Encrypt.
Sperrung: Um ein Zertifikat zu sperren, signiert der Agent die Sperrungsanforderung mit dem autorisierten Schlüsselpaar für die Domäne, und die CA validiert die Anforderung. Die CA veröffentlicht dann die Widerrufsinformationen über CRLs oder OCSP, um die Annahme des widerrufenen Zertifikats zu verhindern.
Abbildung 3: Widerruf von Zertifikaten. Quelle: Let's Encrypt.
Wie wird das ACME-Protokoll verwendet?
Im 2024 State of Machine Identity Management Report gaben 40 % der Befragten an, dass ihre Unternehmen immer noch Tabellenkalkulationen verwenden, um Zertifikate manuell zu erfassen. Im Durchschnitt erlebten diese Unternehmen innerhalb von zwei Jahren etwa drei unerwartete Ausfälle, die durch abgelaufene oder falsch konfigurierte Zertifikate verursacht wurden.
Trotz des zunehmenden Einsatzes moderner, flexibler Computerumgebungen verwenden viele Unternehmen nach wie vor veraltete Techniken zur Bereitstellung und Verwaltung von Zertifikaten, die den gestiegenen Anforderungen der heutigen schnelllebigen Umgebungen nicht mehr gerecht werden. Die manuelle Verwaltung von Zertifikaten in Tabellenkalkulationen oder Datenbanken ist ineffizient und birgt das Risiko von Ausfällen oder Nichteinhaltung von Vorschriften aufgrund menschlicher Fehler.
Das ist genau das, was die ACME-Protokolldokumentation hervorhebt: "Bestehende Web-PKI-Zertifizierungsstellen verwenden in der Regel eine Reihe von Ad-hoc-Protokollen für die Ausstellung von Zertifikaten und die Identitätsprüfung. Diese Ad-hoc-Verfahren werden erreicht, indem der menschliche Benutzer dazu gebracht wird, interaktive Anweisungen der Zertifizierungsstelle in natürlicher Sprache zu befolgen, und nicht durch maschinell implementierte veröffentlichte Protokolle. In vielen Fällen sind die Anweisungen schwer zu befolgen und führen zu erheblicher Frustration und Verwirrung.
Verwendung von ACME zur Automatisierung von Zertifikaten
Die zunehmende Verwendung von TLS Serverzertifikaten zur Sicherung von Anwendungen und Daten erhöht die Wahrscheinlichkeit von Ausfällen, da mehr Zertifikate zu verfolgen sind und mehr Zertifikate pro Geschäftsanwendung den Betrieb beeinträchtigen können. Die Beantragung, Erneuerung und Bereitstellung von Zertifikaten mit manuellen Methoden und Tabellenkalkulationen dauert Stunden oder Tage. Dies ist nicht nur zeitaufwändig, sondern auch ein fehleranfälliger Prozess, der zu schmerzhaften Ausfällen führen kann.
ACME hilft dabei, diese lästige Situation zu entschärfen, indem IT-Administratoren der Zertifizierungsstelle auf automatisierte Weise nachweisen können, dass sie die Domäne kontrollieren, ein vertrauenswürdiges Zertifikat ausstellen und den Ablauf des Zertifikats im Auge behalten. Außerdem können sie das Zertifikat automatisch erneuern oder widerrufen, wenn dies erforderlich ist.
ACME bringt Automatisierung in komplexe PKI-Implementierungen. Oder wie es in der Protokolldokumentation heißt, bietet ACME einen "erweiterbaren Rahmen für die Automatisierung der Ausstellung und des Domänenvalidierungsverfahrens, wodurch Server und die Infrastruktur software Zertifikate ohne Benutzerinteraktion erhalten können. Die Verwendung dieses Protokolls sollte den Einsatz von HTTPS und die Praktikabilität der PKIX-basierten Authentifizierung für andere Protokolle, die auf TLS basieren, radikal vereinfachen."
Die Bedeutung der CA-Agilität
CA-Agilität ist die Fähigkeit, eine CA hinzuzufügen/zu entfernen oder von einer CA zu einer anderen zu wechseln, was für die geschäftliche Agilität von entscheidender Bedeutung ist, um CA-Lock-in zu vermeiden. Es ist eine branchenweit bewährte Praxis, eine große Abhängigkeit von einer einzigen CA zu vermeiden. Wir sollten in der Lage sein, CAs transparent zu wechseln, wann immer dies erforderlich ist, ohne Auswirkungen auf das Geschäft.
Wenn ein Unternehmen an eine einzige Zertifizierungsstelle gebunden ist und dieser etwas zustößt, z. B. eine Kompromittierung oder ein Dienstausfall, kann dies große Auswirkungen auf die Verfügbarkeit des Online-Betriebs haben. Aus diesem Grund ist die Möglichkeit, zu einer Backup-CA zu wechseln, eine bewährte Praxis.
Mit ACME ist die Auswahl einer Backup-CA ganz einfach. Es gibt derzeit viele Zertifizierungsstellen, die das ACME-Protokoll unterstützen, und die Auswahl einer solchen ist nur ein paar Klicks während der Konfigurationsphase entfernt.
Keyfactor + ACME
Die PlattformKeyfactor unterstützt die Automatisierung und Selbstbedienung durch robuste integrierte Funktionen sowie die auf offenen Protokollen basierende Zertifikatsautomatisierung mit ACME.
Die Plattform kann als ACME-Server betrieben werden und hilft Ihnen, manuelle, zeitaufwändige Prozesse und menschliche Fehler durch ein End-to-End-Zertifikats-Lebenszyklusmanagement zu reduzieren, und macht es Teams leicht, sicherheitsgenehmigte Zertifikate zu erhalten.