Richtlinien für die Zertifikatsausstellung hinzufügen
Wenn Sie Richtlinien für die Zertifikatausstellung in CA Service hinzufügen, definieren Sie Regeln und Einschränkungen für die Arten von Zertifikaten, die von einer Zertifizierungsstelle (Certificate Authority, CA) ausgestellt werden. Weitere Informationen zu Zertifikatsausstellungsrichtlinien finden Sie unter Zertifikatsausstellungsrichtlinien.
Mit einer Richtlinie für die Zertifikatsausstellung können Sie den Antragsteller und die alternativen Antragstellernamen (Subject Alternative Names, SANs) angeben, die in den ausgestellten Zertifikaten enthalten sein dürfen. Sie können die Richtlinie für die Zertifikatausstellung beim Erstellen eines CA-Pools angeben oder einen vorhandenen CA-Pool aktualisieren, um eine Ausstellungsrichtlinie hinzuzufügen.
Weitere Informationen finden Sie unter Übersicht über Vorlagen und Ausstellungsrichtlinien.
Hinweise
Sie benötigen die IAM-Rolle „Operation Manager für CA Service“ (
roles/privateca.caManager
) oder „CA Service-Administrator“ (roles/privateca.admin
). Informationen zum Zuweisen einer IAM-Rolle zu einem Prinzipal finden Sie unter Einzelne Rolle zuweisen.
Sie können einem CA-Pool eine Richtlinie für die Zertifikatsausstellung hinzufügen, wenn Sie einen CA-Pool erstellen oder einen vorhandenen CA-Pool aktualisieren.
Gehen Sie nach einer der folgenden Methoden vor:
Console
Rufen Sie in derGoogle Cloud Console die Seite Certificate Authority Service auf. Zum Certificate Authority Service
Klicken Sie auf der Seite CA-Poolmanager auf den Namen des CA-Pools, dem Sie eine Richtlinie zur Zertifikatausstellung hinzufügen möchten.
Klicken Sie auf der Seite CA-Pool auf
Bearbeiten.
Diese Einstellung bezieht sich auf das Feld Key Usage
in einem digitalen Zertifikat. Sie gibt an, wie der private Schlüssel des Zertifikats verwendet werden kann, z. B. für die Schlüsselverschlüsselung, Datenverschlüsselung, Zertifikatsignierung und CRL-Signierung.
Weitere Informationen finden Sie unter Schlüsselnutzung.
- Wenn Sie die Basisschlüsselverwendungen auswählen möchten, klicken Sie auf den Schalter Basisschlüsselverwendungen für Zertifikate angeben, die von diesem CA-Pool ausgestellt werden und wählen Sie dann aus den aufgeführten Optionen aus.
- Klicken Sie auf Weiter.
Diese Einstellung bezieht sich auf das Feld Extended Key Usage (EKU)
in einem digitalen Zertifikat. Sie bietet genauere und präzisere Einschränkungen für die Verwendung des Schlüssels, z. B. für die Serverauthentifizierung, die Clientauthentifizierung, die Codesignierung und den E‑Mail-Schutz. Weitere Informationen finden Sie unter Erweiterte Schlüsselverwendung.
Erweiterte Schlüsselverwendungen werden mit Objektkennungen (Object Identifiers, OIDs) definiert. Wenn Sie die erweiterten Schlüsselverwendungen nicht konfigurieren, sind alle Schlüsselverwendungsszenarien zulässig.
- Wenn Sie die erweiterten Schlüsselverwendungen auswählen möchten, klicken Sie auf die Ein/Aus-Schaltfläche Erweiterte Schlüsselverwendungen für Zertifikate schreiben, die von diesem CA-Pool ausgestellt werden und wählen Sie dann eine der aufgeführten Optionen aus.
- Klicken Sie auf Weiter.
Die Erweiterung „certificatePolicies“ im Zertifikat gibt die Richtlinien an, die der ausstellende CA-Pool befolgt. Diese Erweiterung kann Informationen dazu enthalten, wie Identitäten vor der Zertifikatsausstellung validiert werden, wie Zertifikate widerrufen werden und wie die Integrität des CA-Pools sichergestellt wird. Mit dieser Erweiterung können Sie die Zertifikate überprüfen, die vom CA-Pool ausgestellt werden, und sehen, wie die Zertifikate verwendet werden.
Weitere Informationen finden Sie unter Zertifikatsrichtlinien.
So legen Sie die Richtlinie fest, die die Zertifikatsnutzung definiert:
- Fügen Sie die Richtlinien-ID in das Feld Richtlinien-IDs ein.
- Klicken Sie auf Weiter.
Die AIA-Erweiterung in einem Zertifikat enthält die folgenden Informationen:
- Adresse der OCSP-Server, über die Sie den Sperrstatus des Zertifikats prüfen können.
- Die Zugriffsmethode für den Aussteller des Zertifikats.
Weitere Informationen finden Sie unter Authority Information Access.
So fügen Sie die OCSP-Server hinzu, die im AIA-Erweiterungsfeld in den Zertifikaten angezeigt werden:
- Klicken Sie auf Zeile hinzufügen.
- Fügen Sie im Feld Server URL die URL des OCSP-Servers hinzu.
- Klicken Sie auf Fertig.
- Klicken Sie auf Weiter.
Das Feld CA-Optionen in einer Zertifikatvorlage definiert, wie das resultierende Zertifikat in einer Zertifizierungsstellenhierarchie verwendet werden kann. CA-Optionen legen fest, ob ein Zertifikat zum Signieren anderer Zertifikate verwendet werden kann und, falls ja, welche Einschränkungen für die von ihm ausgestellten Zertifikate gelten.
Wählen Sie aus den folgenden Optionen aus:
Konfigurationen zum Beschreiben der CA-X.509-Erweiterungen einschließen: Geben Sie die Einstellungen in einer Zertifikatsvorlage an, die die X.509-Erweiterungen steuern.
Ausgestellte Zertifikate auf die ausschließliche Verwendung für CAs einschränken: Diese Option wird nur angezeigt, wenn Sie das Kästchen im vorherigen Schritt aktivieren. Dieser boolesche Wert gibt an, ob das Zertifikat ein CA-Zertifikat ist. Wenn der Wert auf
true
festgelegt ist, kann das Zertifikat zum Signieren anderer Zertifikate verwendet werden. Wennfalse
, ist das Zertifikat ein End-Entity-Zertifikat und kann keine anderen Zertifikate signieren. Wenn Sie auf diesen Schalter klicken, werden Sie aufgefordert, Namenseinschränkungen für die Erweiterung in CA-Zertifikaten zu definieren.Konfigurationen zum Beschreiben der Pfadlängeneinschränkung für X.509-Erweiterungen einschließen: Geben Sie die Einstellungen an, mit denen gesteuert wird, wie lang eine Kette von Zertifikaten sein darf, die von einem bestimmten Zertifikat ausgeht. Wenn die maximale Ausstellerpfadlänge auf
0
festgelegt ist, kann die Zertifizierungsstelle nur Endentitätzertifikate ausstellen. Wenn sie auf1
gesetzt ist, darf die Kette unter diesem CA-Zertifikat nur eine untergeordnete CA enthalten. Wenn ein Wert nicht deklariert wird, ist die Anzahl der untergeordneten Zertifizierungsstellen in der Kette unter dieser Zertifizierungsstelle unbegrenzt.- Klicken Sie auf Weiter.
So konfigurieren Sie zusätzliche benutzerdefinierte Erweiterungen, die in die vom CA-Pool ausgestellten Zertifikate aufgenommen werden sollen:
- Klicken Sie auf Zeile hinzufügen.
- Fügen Sie im Feld Object identifier (Objektkennung) eine gültige Objektkennung hinzu, die aus punktgetrennten Ziffern besteht.
- Fügen Sie im Feld Value den base64-codierten Wert für die Kennung ein.
- Wenn die Erweiterung kritisch ist, wählen Sie Erweiterung ist kritisch aus.
Klicken Sie auf Fertig, um alle Konfigurationen für Basiswerte zu speichern.
gcloud
Wenn Sie die Google Cloud CLI verwenden möchten, um einem CA-Pool eine Richtlinie zur Zertifikatausstellung hinzuzufügen, müssen Sie eine YAML-Datei erstellen, in der die Einschränkungen für die Zertifikate beschrieben werden, die der CA-Pool ausstellen kann. Der Inhalt entspricht einer IssuancePolicy.
Erstellen Sie mit dem Cloud Shell-Editor eine Datei
policy.yaml
mit folgendem Inhalt:identityConstraints: allowSubjectPassthrough: true allowSubjectAltNamesPassthrough: true
Wobei:
allowSubjectPassthrough
ist ein Pflichtfeld. Wenn das FeldallowSubjectPassthrough
auftrue
gesetzt ist, wird das Feld „Antragsteller“ aus einer Zertifikatsanfrage in das signierte Zertifikat kopiert. Andernfalls wird das angeforderte Thema verworfen.- Wenn das Feld
allowSubjectAltNamesPassthrough
auftrue
gesetzt ist, wird die Erweiterung „SubjectAltNames“ aus einer Zertifikatsanfrage in das signierte Zertifikat kopiert. Andernfalls werden die angeforderten SubjectAltNames verworfen.
Führen Sie den folgenden Befehl aus, um die Richtlinie für die Zertifikatausstellung eines CA-Pools mit der im vorherigen Schritt erstellten Datei zu aktualisieren:
gcloud privateca pools update POOL_NAME --location LOCATION --issuance-policy FILE_PATH
Ersetzen Sie Folgendes:
- POOL_NAME: der Name des CA-Pools.
- LOCATION: der Standort des CA-Pools. Eine vollständige Liste der Standorte finden Sie unter Standorte.
- FILE_PATH: der Pfad der Datei
policy.yaml
.
Weitere Informationen zum Befehl
gcloud privateca pools update
finden Sie unter gcloud privateca pools update.
Unterstützte Einschränkungen
CA Service unterstützt die folgenden Einschränkungen für die Ausstellung von Zertifikaten. Sie können die folgenden Einschränkungen nach Bedarf kombinieren, um eine benutzerdefinierte Richtlinie für die Zertifikatausstellung zu erstellen.
Zulässige X.509-Werte einschränken oder erzwingen
Mit einem CA-Pool können die zulässigen X.509-Werte in Zertifikatsanfragen eingeschränkt werden, indem das Feld passthrough_extensions konfiguriert wird.
In einem CA-Pool können auch explizit X.509-Werte angegeben werden, die allen ausgestellten Zertifikaten hinzugefügt werden sollen. Dabei werden alle angeforderten Werte mit dem Feld baseline_values überschrieben.
Mit den baseline_values-Werten eines CA-Pools können die folgenden Eigenschaften angegeben werden:
Sie können diese Optionen auch zusammen verwenden.
Wenn Sie einen Teil des Felds baseline_values
aktualisieren, wird die gesamte Gruppe von Werten im Feld baseline_values
durch die Aktualisierung ersetzt.
Beispiel: Beschränken Sie eine Zertifizierungsstelle so, dass sie nur Endentitätszertifikate mit X.509-Werten für gegenseitiges TLS (mTLS) ausstellen kann.
policy.yaml
baselineValues: caOptions: isCa: false keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: clientAuth: true serverAuth: true
Beispiel: Eine Zertifizierungsstelle so einschränken, dass sie nur Code-Signaturzertifikate für Endentitäten mit einer AIA-OCSP-URL ausstellt.
policy.yaml
baselineValues: caOptions: isCa: false keyUsage: baseKeyUsage: digitalSignature: true extendedKeyUsage: codeSigning: true aiaOcspServers: - "http://foo.bar/revocation" additionalExtensions: - objectId: objectIdPath: - 1 - 2 - 3 critical: false value: "base64 encoded extension value"
Weitere Informationen zum Zertifikatprofil für die mTLS-Authentifizierung von Endentitäten finden Sie unter mTLS-Authentifizierung von Endentitäten.
Zulässige Identitätsfelder einschränken
Wenn Sie die Identität von Zertifikaten einschränken möchten, die über einen CA-Pool ausgestellt werden, können Sie dem Feld identity_constraints der Ausstellungsrichtlinie einen [CEL-Ausdruck (Common Expression Language)][4]{: .external} hinzufügen. Die CEL-Ausdrücke ermöglichen beliebige Einschränkungen für den Domainnamen des Inhabers (einschließlich des allgemeinen Namens) und die SANs eines Zertifikats.
Weitere Informationen zum Einschränken von Betreff und SANs mit einem CEL-Ausdruck finden Sie unter CEL verwenden.
Beispiel: Die Zertifizierungsstelle darf nur Zertifikate ausstellen, die einem bestimmten Betreff entsprechen.
policy.yaml
identityConstraints: allowSubjectPassthrough: true allowSubjectAltNamesPassthrough: false celExpression: expression: 'subject.organization == "Example LLC" && subject.country_code in ["US", "UK"]'
Das Feld
celExpression
ist optional. Verwenden Sie einen CEL-Ausdruck (Common Expression Language), um den aufgelösten X.509-Inhaber und SAN zu validieren, bevor ein Zertifikat signiert wird. Weitere Informationen zur Verwendung von CEL-Ausdrücken finden Sie unter CEL verwenden.Beispiel: Nur SANs mit DNS-Namen wie
us.google.org
oder mit der Endung.google.com
zulassen.policy.yaml
identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: 'subject_alt_names.all(san, san.type == DNS && (san.value == "us.google.org" || san.value.endsWith(".google.com")) )'
Beispiel: Es sind nur SANs mit URIs
https://google.com/webhp
oder URIs, die mitspiffe://example-trust-domain-1/ns/namespace1/sa/
beginnen, zulässig.policy.yaml
identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: 'subject_alt_names.all(san, san.type == URI && (san.value == "https://google.com/webhp" || san.value.startsWith("spiffe://example-trust-domain-1/ns/namespace1/sa/")) )'
Beispiel: Es sollen nur SANs mit E-Mail-Adressen
example@google.com
oder mit der Endung@google.org
zugelassen werden.policy.yaml
identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: 'subject_alt_names.all(san, san.type == EMAIL && (san.value == "example@google.com" || san.value.endsWith("@google.org")) )'
Beispiel: Nur benutzerdefinierte SANs mit einer bestimmten OID und einem benutzerdefinierten Wert zulassen.
policy.yaml
identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: 'subject_alt_names.all(san, san.type == CUSTOM && san.oid == [1, 2, 3, 4] && san.value == "custom-data" )'
Dauer der Rückdatierung der ausgestellten Zertifikate einschränken
Wenn Sie für ausgestellte Zertifikate eine not_before_time in der Vergangenheit festlegen möchten, verwenden Sie das Feld backdate_duration. Wenn konfiguriert, haben Zertifikate aus diesem CA-Pool eine not_before_time, die der Ausstellungszeit minus der angegebenen Dauer entspricht. Der Wert not_after_time wird angepasst, um die angeforderte Zertifikatslaufzeit beizubehalten. Die backdate_duration muss kleiner oder gleich 48 Stunden sein.
Beispiel
Wenn Sie Zertifikate um eine Stunde zurückdatieren möchten, verwenden Sie die folgende policy.yaml
-Datei:
policy.yaml
backdateDuration: 3600s
Maximale Lebensdauer der ausgestellten Zertifikate einschränken
Verwenden Sie das Feld maximum_lifetime, um die Lebensdauer der ausgestellten Zertifikate einzuschränken. Wenn die angeforderte Lebensdauer eines Zertifikats länger als die maximale Lebensdauer ist, wird die Lebensdauer des Zertifikats explizit verkürzt.
Beispiel
Wenn Sie eine maximale Lebensdauer von 30 Tagen zulassen möchten, verwenden Sie die folgende policy.yaml
-Datei:
policy.yaml
maximumLifetime: 2592000s
Zulässige Zertifikatsausstellungsmodi einschränken
Sie können ein Zertifikat entweder über eine Anfrage zur Zertifikatssignierung (Certificate Signing Request, CSR) oder eine Inline-Beschreibung der angeforderten Werte anfordern. Einige Organisationen ziehen es möglicherweise vor, die verwendbare Option einzuschränken, da für die zweite Methode kein Nachweis des Besitzes des zugehörigen privaten Schlüssels erforderlich ist. Sie können diese Einschränkungen mit dem Feld allowedIssuanceModes festlegen.
Weitere Informationen zum Angeben der Methoden, mit denen Zertifikate von einem CA-Pool angefordert werden können, finden Sie unter IssuanceModes.
Weitere Informationen zum Anfordern von Zertifikaten finden Sie unter Zertifikatsanfrage erstellen.
Beispiel: Nur die Ausstellung von CSRs zulassen.
policy.yaml
allowedIssuanceModes:
allowCsrBasedIssuance: True
allowConfigBasedIssuance: False
Algorithmen für öffentliche Schlüssel der Zertifikatsanfrage einschränken
Wenn Sie die Mindestschlüssellänge und die Algorithmen für öffentliche Schlüssel einschränken möchten, die für Zertifikate verwendet werden können, können Sie das Feld allowedKeyTypes in der YAML-Datei der Richtlinie für die Zertifikatsausstellung verwenden. Wenn dieses Feld angegeben ist, muss der öffentliche Schlüssel der Zertifikatsanfrage mit einem der in der YAML-Datei aufgeführten Schlüsseltypen übereinstimmen. Wenn dieses Feld nicht angegeben ist, können Sie einen beliebigen Schlüssel verwenden, mit Ausnahme von RSA-Schlüsseln, deren Modulusgröße weniger als 2.048 Bit beträgt. Wenn Sie einen RSA-Schlüssel mit einer Modulusgröße von weniger als 2.048 Bit verwenden möchten, müssen Sie dies explizit über die Richtlinie zur Zertifikatausstellung zulassen.
Beispiel: RSA-Schlüssel mit einer Modulusgröße zwischen 3.072 Bit und 4.096 Bit (einschließlich) oder ECDSA-Schlüssel (Elliptic Curve Digital Signature Algorithm) über der NIST P-256-Kurve zulassen.
policy.yaml
allowedKeyTypes:
- rsa:
minModulusSize: 3072
maxModulusSize: 4096
- ellipticCurve:
signatureAlgorithm: ECDSA_P256
Sie können einen der folgenden Signaturalgorithmen für elliptische Kurven auswählen:
EC_SIGNATURE_ALGORITHM_UNSPECIFIED
: Es kann ein beliebiger Signaturalgorithmus verwendet werden.ECDSA_P256
– Elliptic Curve Digital Signature Algorithm (ECDSA) über die NIST P-256-Kurve.ECDSA_P384
– Elliptic Curve Digital Signature über die NIST-P-384-Kurve.EDDSA_25519
– Edwards-curve Digital Signature Algorithm über Kurve 25519, wie in RFC 8410 beschrieben.
Nächste Schritte
- Weitere Informationen zu Zertifikatprofilen
- Weitere Informationen zum Anfordern von Zertifikaten
- IAM-Richtlinien konfigurieren
- Informationen zur Verwendung der Common Expression Language (CEL)
- Informationen zum Verwalten verschiedener Richtlinienkontrollen