Certificate Manager verwendet einen flexiblen Zuordnungsmechanismus, mit dem Sie genau steuern können, welche Zertifikate Sie für jeden Domainnamen in Ihrer Umgebung zuweisen und wie sie bereitgestellt werden. Der Mechanismus umfasst die folgenden Entitäten:
- Zertifikate
- Zertifikatszuordnungen
- Zertifikatszuordnungseinträge
- Domainautorisierungen
Das folgende Diagramm veranschaulicht die Beziehungen zwischen diesen Entitäten für einen typischen Zielproxy, der in einer Load Balancer-Weiterleitungsregel angegeben ist:
Certificate Manager unterstützt Ziel-HTTPS-Proxys und Ziel-SSL-Proxys. Weitere Informationen zu den Unterschieden zwischen diesen Proxytypen finden Sie unter Zielproxys verwenden.
Informationen zu den von Certificate Manager unterstützten Zertifikatstypen finden Sie unter Bereitstellung – Übersicht.
Zertifikate
Standardmäßig stellt ein Zertifikat ein einzelnes X.509 Transport Layer Security (TLS) (SSL)-Zertifikat dar, das für bestimmte Domainnamen oder Domainplatzhalter ausgestellt wird.
Certificate Manager unterstützt die folgenden Zertifikatstypen:
- Von Google verwaltete Zertifikate sind Zertifikate, die Google Cloudfür Sie abgerufen und verwaltet werden.
- Selbstverwaltete Zertifikate sind Zertifikate, die Sie selbst erwerben, bereitstellen und erneuern.
Wenn Sie ein Zertifikat mit einer öffentlich vertrauenswürdigen Zertifizierungsstelle ausstellen, veröffentlicht die Zertifizierungsstelle Informationen zur zugehörigen Domain in Certificate Transparency-Protokollen, die öffentlich zugänglich sind. Dies ist Teil des standardmäßigen Zertifikatsausstellungsverfahrens, das von allen öffentlich vertrauenswürdigen Zertifizierungsstellen verwendet wird. Es gilt sowohl für von Google verwaltete als auch für selbstverwaltete Zertifikate. Wenn Sie jedoch den Zertifizierungsstellendienst zum Ausstellen Ihres von Google verwalteten Zertifikats verwenden, veröffentlicht Certificate Manager keine Informationen in Zertifikatstransparenz-Logs.
Weitere Informationen finden Sie unter Zertifikatstransparenz.
Informationen zum Bereitstellen eines Zertifikats mit dem Zertifikatsmanager finden Sie unter Bereitstellungsübersicht.
Von Google verwaltete Zertifikate
Die Verwaltung von von Google verwalteten TLS-Zertifikaten (SSL) für Ihre Websites und Anwendungen kann eine komplexe und zeitaufwendige Aufgabe sein, die oft manuelle Konfigurationen und regelmäßige Wartungen erfordert. Certificate Manager ist ein Dienst, der Ihnen dabei helfen soll, diesen Prozess zu optimieren, indem er eine zentrale Plattform bietet. Sie können die Verantwortung für die Ausstellung und Verlängerung von Zertifikaten an Certificate Manager delegieren und so mehr Zeit für andere wichtige Aufgaben haben.
Sie können die Inhaberschaft der entsprechenden Domain entweder mit einer Load Balancer-basierten oder einer DNS-basierten Autorisierung bestätigen. Certificate Manager unterstützt von Google verwaltete RSA-Zertifikate.
Standardmäßig stellt die Google-Zertifizierungsstelle von Google verwaltete Zertifikate aus. Wenn ein neues von Google verwaltetes Zertifikat ausgestellt oder verlängert wird, wird ein neu generierter privater Schlüssel verwendet. Wenn Sie für eine bestimmte Domain kein Zertifikat von der Google-Zertifizierungsstelle erhalten können, greift der Zertifikatsmanager auf die Let's Encrypt-Zertifizierungsstelle zurück. Möglicherweise weigert sich die Google-Zertifizierungsstelle beispielsweise, ein Zertifikat für die Domain auszustellen, oder Ihr Autorisierungseintrag für die Zertifizierungsstelle verbietet der Google-Zertifizierungsstelle ausdrücklich, Zertifikate für diese Domain auszustellen.
Die Authentifizierung nur auf Clientseite wird nicht unterstützt.
Eine Anleitung zum Einschränken der Zertifizierungsstellen, die Zertifikate für Ihre Domains ausstellen können, finden Sie unter Die Zertifizierungsstellen angeben, die Ihr von Google verwaltetes Zertifikat ausstellen können.
Regionale von Google verwaltete Zertifikate unterstützen nur die DNS-basierte Autorisierung und beziehen Zertifikate von der Google-Zertifizierungsstelle.
Von Google verwaltete Zertifikate, die vom Certificate Authority Service ausgestellt wurden
Wenn Sie Ihre eigene Vertrauenskette verwenden möchten, anstatt sich bei der Ausstellung Ihrer Zertifikate auf von Google genehmigte öffentliche Zertifizierungsstellen zu verlassen, können Sie den Certificate Manager so konfigurieren, dass stattdessen ein CA-Pool aus dem Certificate Authority Service als Zertifikataussteller verwendet wird. Weitere Informationen zu CA-Pools finden Sie unter CA-Pools erstellen.
Selbstverwaltete Zertifikate
Wenn Sie aufgrund Ihrer Geschäftsanforderungen keine von Google verwalteten Zertifikate verwenden können, können Sie von externen Zertifizierungsstellen ausgestellte Zertifikate zusammen mit den zugehörigen Schlüsseln hochladen. Sie sind für die manuelle Ausstellung und Verlängerung selbst verwalteter Zertifikate verantwortlich.
Mit Certificate Manager können Sie auch regionale selbst verwaltete Zertifikate auf Secure Web Proxy-Proxys und regionalen Load Balancern bereitstellen.
Zertifikatszuordnungen
Eine Zertifikatszuordnung verweist auf einen oder mehrere Zertifikatszuordnungseinträge, die bestimmte Zertifikate bestimmten Hostnamen zuweisen. Zertifikatszuordnungseinträge definieren auch die Auswahllogik, der der Load Balancer beim Herstellen von Clientverbindungen folgt. Sie können eine Zertifikatzuordnung mit mehreren Zielproxies verknüpfen, um sie für mehrere Load Balancer wiederzuverwenden.
Wenn ein Client einen in einer Zertifikatszuordnung angegebenen Hostnamen anfordert, gibt der Load Balancer die diesem Hostnamen zugeordneten Zertifikate zurück. Andernfalls stellt der Load Balancer das primäre Zertifikat bereit. Weitere Informationen finden Sie unter Logik für die Zertifikatsauswahl.
Zertifikatszuordnungseinträge
Ein Eintrag der Zertifikatszuordnung ist eine Liste der Zertifikate, die für einen bestimmten Domainnamen bereitgestellt werden. Sie können verschiedene Zertifikatssätze für verschiedene Domainnamen definieren, z. B. für Domains oder Subdomains. Sie können beispielsweise ein ECDSA- und ein RSA-Zertifikat hochladen und ihnen denselben Domainnamen zuordnen. Wenn ein Client eine Verbindung zu diesem Domainnamen herstellt, verhandelt der Load Balancer während des Handshakes den Zertifikatstyp, der dem Client zur Verfügung gestellt werden soll.
Domainautorisierungen
Mit dem Zertifikatsmanager können Sie die Inhaberschaft von Domains nachweisen, für die Sie von Google verwaltete Zertifikate ausstellen möchten, wie in der folgenden Tabelle beschrieben.
Load-Balancer-Autorisierung | DNS-Autorisierung | |
---|---|---|
Einrichtungskomplexität | Erfordert keine zusätzlichen Konfigurationsschritte oder Änderungen an der DNS-Konfiguration. | Sie müssen eine DNS-Autorisierung erstellen und den entsprechenden CNAME-Eintrag Ihrer DNS-Konfiguration hinzufügen. |
Netzwerksicherheit | Der Load Balancer muss über Port 443 vollständig aus dem Internet zugänglich sein, einschließlich der DNS-Konfiguration für alle Domains, die über das Zertifikat bereitgestellt werden. Funktioniert nicht mit anderen Konfigurationen. | Funktioniert mit komplexen Konfigurationen, z. B. mit anderen Ports als 443 und CDN-Ebenen vor dem Zielproxy. |
Bereitstellungsgeschwindigkeit | Sie können Zertifikate erst bereitstellen, nachdem der Load Balancer vollständig eingerichtet und für den Netzwerkverkehr verfügbar ist. | Sie können Zertifikate vorab bereitstellen, bevor der Zielproxy für den Netzwerkverkehr bereit ist. |
Informationen dazu, wie Certificate Manager die Domaininhaberschaft mithilfe der einzelnen Methoden überprüft, finden Sie unter Domainautorisierungen für von Google verwaltete Zertifikate.
Konfigurationen von Zertifikatsausstellungen
Eine Konfiguration für die Zertifikatausstellung ist eine Ressource, die es dem Certificate Manager ermöglicht, einen CA-Pool aus Ihrer eigenen Certificate Authority Service-Instanz zu verwenden, um von Google verwaltete Zertifikate anstelle der Google-Zertifizierungsstelle oder der Let's Encrypt-Zertifizierungsstelle auszustellen. Sie können eine Reihe von Parametern für die Ausstellung und das Ablaufdatum von Zertifikaten angeben und den Schlüsselalgorithmus für auf diese Weise ausgestellte Zertifikate auswählen.
Konfigurationen von Vertrauensstellungen
Eine Vertrauenskonfiguration ist eine Ressource, die Ihre Konfiguration der Public-Key-Infrastruktur (PKI) im Zertifikatmanager zur Verwendung in Szenarien mit gegenseitiger TLS-Authentifizierung darstellt. Sie enthält einen einzelnen Trust Store, der wiederum einen Trust-Anchor und optional ein oder mehrere Zwischenzertifikate enthält.
Weitere Informationen zur gegenseitigen TLS-Authentifizierung finden Sie in der Cloud Load Balancing-Dokumentation unter Gegenseitige TLS-Authentifizierung.
Eine Vertrauenskonfigurationsressource umschließt Trust Store-, Trust-Anchor- und Zwischenzertifikats-Entitäten.
Trust Stores
Ein Truststore stellt die Konfiguration des Vertrauenssecrets im Zertifikatmanager für die Verwendung in Szenarien mit gegenseitiger TLS-Authentifizierung dar. Sie enthält einen einzelnen Trust-Anchor und optional ein oder mehrere Zwischenzertifikate.
Trust-Anchors
Ein Trust Anchor stellt ein einzelnes Root-Zertifikat für die Verwendung in Szenarien mit gegenseitiger TLS-Authentifizierung dar. Es ist in einem Trust Store gekapselt.
Zwischenzertifikate
Ein Zwischenzertifikat ist ein einzelnes Zwischenzertifikat, das von einem Root-Zertifikat signiert wurde, oder ein Zwischenzertifikat, auf das im umschließenden Trust Store für die Verwendung in Szenarien mit gegenseitiger TLS-Authentifizierung verwiesen wird.
Je nach PKI-Konfiguration können ein oder mehrere Zwischenzertifikate in einem Truststore gekapselt werden. Alle in einer Vertrauensstellung angegebenen Zwischenzertifikate werden zusätzlich zur Liste der in der Anfrage angegebenen Zwischenzertifikate in die Vertrauensbewertung für jede Verbindungsanfrage einbezogen.
Zertifikate, für die eine Zulassungsliste erforderlich ist
Optional: Wenn Sie ein selbst signiertes, abgelaufenes oder anderweitig ungültiges Zertifikat verwenden müssen oder keinen Zugriff auf die Root- und Zwischenzertifikate haben, können Sie dieses Zertifikat der Vertrauenseinstellung im Feld allowlistedCertificates
hinzufügen. Sie benötigen keinen Trust Store, um einer Zulassungsliste ein Zertifikat hinzuzufügen.
Wenn Sie ein Zertifikat zur Zulassungsliste hinzufügen, wird es immer als gültig betrachtet, solange es parsbar ist, der Besitz des privaten Schlüssels nachgewiesen wurde und die Einschränkungen für das SAN-Feld des Zertifikats erfüllt sind.
Logik für die Zertifikatsauswahl
Im Allgemeinen wählt der Load Balancer ein Zertifikat so aus:
- Ein Client initiiert einen Handshake. Dabei stellt er dem Load Balancer eine Liste der kryptografischen Algorithmen zur Verfügung, die er zum Abschluss des Handshakes verwenden kann, und optional einen Hostnamen.
Der Load Balancer wählt ein Zertifikat aus, um den sicheren Handshake abzuschließen. Dabei orientiert er sich am vom Client angegebenen Hostnamen und an den konfigurierten Zertifikatszuordnungseinträgen. Die Faktoren, die bestimmen, welches Zertifikat der Load Balancer auswählt, sind:
Exakte Übereinstimmung des Hostnamens: Wenn der Client einen Hostnamen angibt, der genau mit einem Eintrag in der bereitgestellten Zertifikatszuordnung übereinstimmt, wählt der Load Balancer das entsprechende Zertifikat aus.
Übereinstimmung mit Platzhalter-Hostnamen: Wenn der Hostname des Clients mit keinem Eintrag übereinstimmt, aber mit einem Platzhalter-Hostnamen in einem Eintrag der Zertifikatszuordnung, wählt der Load Balancer das entsprechende Zertifikat aus diesem Eintrag aus. Ein Wildcard-Eintrag, der als
*.myorg.example.com
konfiguriert ist, deckt beispielsweise Subdomains der ersten Ebene unter der Domainmyorg.example.com
ab.Kein Hostnamenübereinstimmung und vorkonfigurierter primärer Zertifikatzuordnungseintrag: Der Load Balancer wählt einen vorkonfigurierten primären Zertifikatzuordnungseintrag aus, wenn keine Hostnamenübereinstimmung oder kein übereinstimmender bereitgestellter Zertifikatzuordnungseintrag vorhanden ist.
Handshake-Fehler: Der Handshake schlägt fehl, wenn der Load Balancer aus den folgenden Gründen kein übereinstimmendes Zertifikat findet:
- Der Client gibt einen Hostnamen an, der nicht mit genauen oder Platzhalter-Hostnamen übereinstimmt, die in allen bereitgestellten Zertifikatszuordnungseinträgen angegeben sind, oder er gibt keinen Hostnamen an.
- Es wird kein übereinstimmender Eintrag in der primären Zertifikatszuordnung gefunden oder Sie haben keinen primären Eintrag in der Zertifikatszuordnung konfiguriert.
Zertifikatspriorität
Der Load Balancer wählt ein Zertifikat in einem Zertifikatszuordnungseintrag anhand der folgenden Kriterien aus:
- Zertifikatstyp Wenn der verbindende Client die sichereren ECDSA-Zertifikate unterstützt, priorisiert der Load Balancer diese gegenüber RSA-Zertifikaten. Wenn der Client keine Unterstützung für ECDSA-Zertifikate angibt, stellt der Load Balancer stattdessen ein RSA-Zertifikat bereit.
- Zertifikatsgröße Der Load Balancer priorisiert Zertifikate vom kleinsten zum größten.
Platzhalter-Domainnamen
Für Platzhalter-Domainnamen gelten die folgenden Regeln:
- Nur von Google verwaltete Zertifikate mit DNS-Autorisierung und von Google verwaltete Zertifikate mit CA-Dienst unterstützen Platzhalter-Domainnamen. Von Google verwaltete Zertifikate mit Load Balancer-Autorisierung unterstützen keine Platzhalterdomainnamen.
- Eine genaue Übereinstimmung hat Vorrang vor einem Platzhalter, wenn beide im Eintrag definiert sind. Wenn Sie beispielsweise Zertifikatzuordnungseinträge für
www.myorg.example.com
und*.myorg.example.com
konfiguriert haben, wird bei einer Verbindungsanfrage anwww.myorg.example.com
immer der Eintrag fürwww.myorg.example.com
ausgewählt, auch wenn ein Eintrag für*.myorg.example.com
vorhanden ist. - Wildcard-Domainnamen werden nur bis zu einer Subdomainebene abgeglichen. Bei einer Verbindungsanfrage für
host1.myorg.example.com
wird beispielsweise ein Zertifikatzuordnungseintrag für*.myorg.example.com
, aber nicht fürhost1.hosts.myorg.example.com
ausgewählt.
Öffentliche Zertifizierungsstelle
Wenn Sie die Funktion für öffentliche Zertifizierungsstellen des Zertifikatmanagers verwenden möchten, müssen Sie mit den folgenden Konzepten vertraut sein:
ACME-Client Ein ACME-Client (Automatic Certificate Management Environment) ist ein Zertifikatsverwaltungsclient, der das ACME-Protokoll verwendet. Ihr ACME-Client muss die externe Kontobindung (External Account Binding, EAB) unterstützen, um mit der öffentlichen Zertifizierungsstelle zu funktionieren.
Externe Kontobindung (External Account Binding, EAB) Sie müssen jedes ACME-Konto, das Sie mit der öffentlichen Zertifizierungsstelle des Certificate Managers verwenden, über eine externe Kontobindung mit dem Ziel-Google Cloud-Projekt verknüpfen. Dazu müssen Sie jedes ACME-Konto mit einem geheimen Schlüssel registrieren, der mit dem entsprechenden Google Cloud-Projekt verknüpft ist. Weitere Informationen finden Sie unter Externe Kontobindung.
Herausforderungen bei öffentlichen Zertifizierungsstellen
Wenn Sie eine öffentliche Zertifizierungsstelle verwenden, um ein Zertifikat anzufordern, werden Sie von Certificate Manager aufgefordert, nachzuweisen, dass Sie die Kontrolle über die in diesem Zertifikat aufgeführten Domains haben. Sie können die Domainkontrolle nachweisen, indem Sie Herausforderungen meistern. Die öffentliche Zertifizierungsstelle autorisiert die Domainnamen, nachdem Sie nachgewiesen haben, dass Sie die Kontrolle über die Zieldomains haben.
Nachdem Sie die erforderlichen Autorisierungen erhalten haben, können Sie Zertifikate anfordern, die nur für einen bestimmten Zeitraum gültig sind. Nach Ablauf dieses Zeitraums müssen Sie den Domainnamen noch einmal validieren, indem Sie eine der drei Arten von Identitätsbestätigungen durchführen, um weiterhin Zertifikate anfordern zu können.
Typen der Identitätsbestätigung
Die öffentliche Zertifizierungsstelle unterstützt die folgenden Arten von Bestätigungen:
HTTP-Herausforderung Dazu wird eine Datei an einem bekannten Speicherort auf einem HTTP-Server (Port 80) erstellt, die von der öffentlichen Zertifizierungsstelle abgerufen und überprüft werden kann. Weitere Informationen finden Sie unter HTTP-Anfrage.
TLS-ALPN-Herausforderung (Application Layer Protocol Negotiation) Erfordert, dass ein Server während einer TLS-Verhandlung auf Port 443 ein bestimmtes Zertifikat zur Verfügung stellt, um die Kontrolle über eine Domain nachzuweisen. Weitere Informationen finden Sie unter ACME TLS-ALPN-Herausforderungserweiterung.
DNS-Herausforderung Es muss ein bestimmter DNS-Eintrag an einer bestimmten Stelle hinzugefügt werden, um die Kontrolle über eine Domain nachzuweisen. Weitere Informationen finden Sie unter DNS-Herausforderung.
Wenn Sie die HTTP- oder TLS-ALPN-Herausforderung zum Validieren eines Domainnamens verwenden, kann der Client nur die validierten Domainnamen anfordern, die in einem Zertifikat enthalten sein sollen. Wenn Sie die DNS-Herausforderung verwenden, kann der Client auch Subdomains dieses Domainnamens anfordern, die in einem Zertifikat enthalten sein sollen.
Wenn Sie beispielsweise *.myorg.example.com
mit der DNS-Herausforderung validieren, werden subdomain1.myorg.example.com
und subdomain2.myorg.example.com
automatisch vom Platzhalterzertifikat abgedeckt. Wenn Sie myorg.example.com
jedoch mit einer HTTP- oder TLS-ALPN-Identitätsbestätigung validieren, kann der Client nur anfordern, myorg.example.com
in das Zertifikat aufzunehmen. Sie können *.myorg.example.com
dann nicht mit den nicht-DNS-Identitätsbestätigungen validieren.
Logik für die Lösung der Herausforderung
Die Logik für die öffentliche CA-Anfrage ist so:
- Die öffentliche Zertifizierungsstelle stellt ein zufälliges Token bereit.
- Der Client stellt das Token an einem genau definierten Ort bereit. Der Speicherort hängt von der Challenge ab.
- Der Client teilt der öffentlichen Zertifizierungsstelle mit, dass er die Herausforderung vorbereitet hat.
- Die öffentliche Zertifizierungsstelle prüft, ob das Token an der erwarteten Stelle mit dem erwarteten Wert übereinstimmt.
Der Domainname wird nach Abschluss dieses Vorgangs autorisiert. Der Kunde kann ein Zertifikat mit diesem Domainnamen anfordern. Sie müssen nur eine Bestätigungsaufgabe pro Domainnamen lösen.