Richtlinie zur Zertifikatsausstellung zu einem Zertifizierungsstellenpool hinzufügen
Auf dieser Seite wird beschrieben, wie Sie einem Zertifikat eine Richtlinie zur Zertifikatsausstellung hinzufügen Zertifizierungsstelle.
Mit einer Richtlinie für die Zertifikatausstellung können Sie den Antragstellernamen und die alternativen Antragstellernamen (Subject Alternative Names, SANs) angeben, die in den ausgestellten Zertifikaten enthalten sein können. 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 Vorlagen und Ausstellungsrichtlinien.
Hinweise
Prüfen Sie, ob CA Service Operation Manager installiert ist (
roles/privateca.caManager
) oder den CA Service-Administrator (roles/privateca.admin
) IAM-Rolle. Informationen zu einem Hauptkonto eine IAM zuweisen, siehe Einzelnen Zugriff Rolle.
Richtliniendatei für die Zertifikatsausstellung hinzufügen
So fügen Sie einem vorhandenen CA-Pool eine Richtlinie zur Zertifikatausstellung hinzu:
Console
Rufen Sie in der Google Cloud Console die Seite Certificate Authority Service auf.
Klicken Sie auf der Seite CA-Pool-Manager auf den Namen des CA-Pools, für den Sie eine Richtlinie zur Zertifikatsausstellung hinzufügen.
Klicken Sie auf der Seite CA-Pool auf
Bearbeiten.
So konfigurieren Sie Referenzwerte in den Zertifikaten, die vom CA-Pool ausgestellt werden: Folgendes:
- Klicken Sie auf die Ein/Aus-Schaltfläche.
- Klicken Sie auf Referenzwerte konfigurieren.
Mit dieser Einstellung können Sie konfigurieren, wie der Schlüssel in kann das Zertifikat verwendet werden. Zu den Optionen für die Schlüsselverwendung gehören Schlüssel Verschlüsselung, Datenverschlüsselung, Zertifikatssignierung, CRL-Signierung und mehr.
Weitere Informationen finden Sie unter Schlüsselnutzung.
So definieren Sie die Basisschlüsselverwendungen:
- Optional: Klicken Sie im angezeigten Fenster auf die Ein/Aus-Schaltfläche, wenn Sie Basisschlüsselverwendungen für die Zertifikate angeben möchten.
- Klicken Sie die Kästchen für die Verwendungsarten des Schlüssels an.
- Klicken Sie auf Weiter.
Mit dieser Einstellung können Sie detailliertere Szenarien auswählen, für die der im Zertifikat enthaltene Schlüssel verwendet werden kann. Zu den Optionen gehören unter anderem die Serverauthentifizierung, die Clientauthentifizierung, die Codesignatur und der E-Mail-Schutz.
Erweiterte Schlüsselverwendungen werden mithilfe von Objektkennungen (OIDs) definiert. Wenn Sie die erweiterten Schlüsselverwendungen nicht konfigurieren, sind alle Szenarien für die Schlüsselverwendung zulässig.
Weitere Informationen finden Sie unter Erweiterte Schlüsselnutzung.
So definieren Sie die erweiterten Schlüsselverwendungen:
- Optional: Klicken Sie auf die Ein/Aus-Schaltfläche, um die erweiterten Schlüsselverwendungen für die Zertifikate anzugeben, die vom CA-Pool ausgestellt werden.
- Klicken Sie die Kästchen für die Szenarien der erweiterten Schlüsselverwendung an.
- Klicken Sie auf Weiter.
Die Erweiterung für Zertifikatrichtlinien im Zertifikat drückt die Richtlinien aus. dem der ausstellende Zertifizierungsstellenpool folgt. Diese Erweiterung kann Informationen dazu enthalten, wie Identitäten vor der Zertifikatsausstellung validiert, Zertifikate widerrufen und die Integrität des CA-Pools sichergestellt werden. Mit dieser Erweiterung können Sie die vom CA-Pool ausgestellten Zertifikate überprüfen und sehen, wie die Zertifikate verwendet werden.
Weitere Informationen finden Sie unter Zertifizierungsrichtlinien.
So legen Sie die Richtlinie fest, die die Zertifikatnutzung definiert:
- Optional: Geben Sie im Feld Richtlinien-IDs die Richtlinien-ID ein.
- Klicken Sie auf Weiter.
Die AIA-Erweiterung in einem Zertifikat stellt die folgenden Informationen bereit:
- Adresse der OCSP-Server, über die Sie den Widerrufsstatus des Zertifikats prüfen können.
- Die Zugriffsmethode für den Aussteller des Zertifikats.
Weitere Informationen finden Sie unter Zugriff auf Zertifizierungsstelleninformationen.
Um die OCSP-Server hinzuzufügen, die im AIA-Erweiterungsfeld in der für Zertifikate, gehen Sie so vor: Das folgende Verfahren ist optional.
- Optional: Klicken Sie auf Element hinzufügen.
- Geben Sie im Feld Server-URL die URL des OCSP-Servers ein.
- Klicken Sie auf Fertig.
- Klicken Sie auf Weiter.
So konfigurieren Sie zusätzliche benutzerdefinierte Erweiterungen für die Zertifikate, die vom CA-Pool ausgestellt wurden, gehen Sie so vor: Das folgende Verfahren ist optional.
- Klicken Sie auf Zeile hinzufügen.
- Geben Sie im Feld Objekt-ID eine gültige Objekt-ID ein, die als durch Punkte getrennte Ziffern formatiert.
- Fügen Sie im Feld Wert den base64-codierten Wert für die Kennung hinzu.
- Wenn die Erweiterung kritisch ist, wählen Sie Erweiterung ist kritisch aus.
Klicken Sie auf Fertig, um alle Grundwertkonfigurationen zu speichern.
Einschränkungen für Erweiterungen konfigurierenWenn Sie nicht möchten, dass alle Erweiterungen aus Zertifikatsanfragen in die ausgestellten Zertifikate aufgenommen werden, klicken Sie auf die Ein/Aus-Schaltfläche.
Nachdem Sie auf die Ein/Aus-Schaltfläche geklickt haben, sehen Sie die Seite Bekanntes Zertifikat Erweiterungen ein, mit dem Sie die Zertifikaterweiterungen auswählen können. Bis Wählen Sie die Zertifikatserweiterungen aus:
- Optional: Klicken Sie auf das Feld Bekannte Zertifikaterweiterungen und entfernen Sie das Häkchen aus dem Feld nicht benötigte Erweiterungen aus.
- Optional: Fügen Sie im Feld Benutzerdefinierte Erweiterungen die Objektkennungen hinzu. für Erweiterungen, die in die Zertifikate aufgenommen werden sollen, die der CA-Pool Probleme.
So konfigurieren Sie Einschränkungen für den Antragsteller und die SANs in den Zertifikaten, die vom CA-Pool ausgestellt werden:
- Optional: Übergabe von Antragsteller in Zertifikatsanfragen unterbinden klicken Sie auf die Ein/Aus-Schaltfläche.
- Optional: Wenn Sie nicht zulassen möchten, dass alternative Antragstellernamen in Zertifikatsanfragen weitergegeben werden, klicken Sie auf die Ein/Aus-Schaltfläche.
- Optional: Fügen Sie einen CEL-Ausdruck (Common Expression Language) hinzu, der eingefügt werden soll Einschränkungen hinsichtlich Zertifikatsinhabern. Weitere Informationen finden Sie unter CEL verwenden.
- Klicken Sie auf Weiter.
Informationen zum Konfigurieren zusätzlicher Parameter in der Richtlinie zur Zertifikatausstellung finden Sie unter IssuancePolicy.
gcloud
So fügen Sie mit der Google Cloud CLI einem CA-Pool eine Richtlinie zur Zertifikatsausstellung hinzu: müssen Sie eine YAML-Datei erstellen, in der die Einschränkungen der Zertifikate, die der CA-Pool ausstellen kann. Die Inhalte entsprechen 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 „Subject“ aus einer Zertifikatsanfrage in das signierte Zertifikat kopiert. Andernfalls wird der angeforderte Subjekt 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 \ --issuance-policy FILE_PATH
Ersetzen Sie Folgendes:
- POOL_NAME: Name des CA-Pools.
- FILE_PATH: Der Pfad der Datei
policy.yaml
.
Weitere Informationen zum Befehl
gcloud privateca pools update
Siehe gcloud privateca Pools update.
Unterstützte Einschränkungen
Der CA-Dienst unterstützt die folgenden Einschränkungen der Richtlinien für die Ausstellung. 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
Ein CA-Pool kann die zulässigen X.509-Werte in Zertifikatsanfragen einschränken, indem das Feld passthrough_extensions konfiguriert wird.
In einem CA-Pool kann auch explizit X.509-Werte angegeben werden, die allen ausgestellten Zertifikaten hinzugefügt werden sollen. Dabei werden alle angeforderten Werte im Feld baseline_values überschrieben.
Mit den baseline_values-Werten eines Zertifizierungsstellenpools können die folgenden Attribute angegeben werden:
Sie können diese Optionen auch zusammen verwenden.
Wenn Sie einen Teil des Felds baseline_values
aktualisieren, werden alle Werte im Feld baseline_values
durch die Aktualisierung ersetzt.
Beispiel: Eine Zertifizierungsstelle darf nur Zertifikate der Endentität mit X.509-Werten für gegenseitige TLS (mTLS) ausstellen.
policy.yaml
baselineValues: caOptions: isCa: false keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: clientAuth: true serverAuth: true
Beispiel: Eine Zertifizierungsstelle darauf beschränken, nur Code Signing-Zertifikate für Endentitäten mit einer Baseline-AIA-OCSP-URL auszustellen.
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 Zertifikatsprofil für mTLS für Endentitäten finden Sie unter Endentität mTLS.
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 Richtlinie für die Ausstellung einen Common Expression Language (CEL)-Ausdruck hinzufügen. Mit den CEL-Ausdrücken lassen sich beliebige Einschränkungen für den Domainnamen des Antragstellers (einschließlich des gemeinsamen Namens) und die SANs eines Zertifikats festlegen.
Weitere Informationen zum Verwenden eines CEL-Ausdrucks zum Einschränken von Subjekt und SANs finden Sie unter CEL verwenden.
Beispiel: Die Zertifizierungsstelle darf nur Zertifikate ausstellen, die mit einem bestimmten Subjekt übereinstimmen.
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 Common Expression Language-Ausdruck (CEL), um das aufgelöste X.509-Subjekt und den SAN zu validieren, bevor ein Zertifikat signiert wird. Weitere Informationen zur Verwendung von CEL-Ausdrücken finden Sie unter CEL verwenden.Beispiel: Sie lassen nur SANs mit DNS-Namen
us.google.org
oder der Endung.google.com
zu.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: Sie lassen nur SANs zu, die den URI
https://google.com/webhp
haben oder mitspiffe://example-trust-domain-1/ns/namespace1/sa/
beginnen.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: Nur SANs mit der E-Mail-Adresse
example@google.com
oder der Erweiterung auf@google.org
zulassen.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" )'
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 die maximale Lebensdauer überschreitet, wird die Lebensdauer des Zertifikats explizit abgeschnitten.
Beispiel
Verwenden Sie die folgende policy.yaml
-Datei, um eine maximale Lebensdauer von 30 Tagen zuzulassen:
policy.yaml
maximumLifetime: 2592000s
Zulässige Modi für die Zertifikatsausstellung einschränken
Sie können ein Zertifikat entweder über eine Anfrage zur Zertifikatsignierung (Certificate Signing Request, CSR) oder über eine Inline-Beschreibung der angeforderten Werte anfordern. Einige Organisationen ziehen es möglicherweise vor, Einschränkungen für die Option hinzuzufügen, die verwendet werden kann, da bei letzterer 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 dazu, wie Zertifikate von einem Zertifizierungsstellenpool angefordert werden können, finden Sie unter IssuanceModes.
Weitere Informationen zum Anfordern von Zertifikaten finden Sie unter Erstellen Sie eine Zertifikatsanfrage.
Beispiel: Nur Ausstellung von CSR-Zertifikaten zulassen.
policy.yaml
allowedIssuanceModes:
allowCsrBasedIssuance: True
allowConfigBasedIssuance: False
Algorithmen für öffentliche Schlüssel der Zertifikatsanfrage einschränken
Um die minimale Schlüssellänge und die öffentlichen Schlüsselalgorithmen einzuschränken, Zertifikate verwenden können, können Sie das Feld allowedKeyTypes in der YAML-Datei für die Richtlinie zur Zertifikatsausstellung. Ist dieses Feld angegeben, Der öffentliche Schlüssel der Zertifikatsanfrage muss einem der Schlüsseltypen entsprechen, die im YAML-Datei. Wird dieses Feld nicht angegeben, können Sie einen beliebigen Schlüssel mit dem Parameter Ausnahme von RSA-Schlüsseln mit weniger als 2.048 Bit. Wenn Sie einen RSA-Schlüssel verwenden möchten mit einer Modulo-Größe von weniger als 2048 Bit, müssen Sie dies explizit mithilfe der Richtlinie zur Zertifikatsausstellung.
Beispiel: RSA-Schlüssel mit einer Modulusgröße zwischen 3.072 Bit und 4.096 zulassen Bits (einschließlich) oder Schlüssel des Elliptic Curve Digital Signature Algorithm (ECDSA) über der NIST P-256-Kurve.
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
: Jeder Signaturalgorithmus kann verwendet werden.ECDSA_P256
– Digitale Signatur für elliptische Kurven über der NIST P-256-Kurve.ECDSA_P384
– Elliptische-Kurven-Digitalsignatur über die NIST-P-384-Kurve.EDDSA_25519
– Edwards-Kurven-Digital Signature Algorithm über die Kurve 25519, wie in RFC 8410 beschrieben.
Nächste Schritte
- Weitere Informationen zu Zertifikatsprofilen
- Weitere Informationen zum Anfordern von Zertifikaten
- IAM-Richtlinien konfigurieren
- Weitere Informationen zur Verwendung der Common Expression Language (CEL)
- Informationen zum Verwalten verschiedener Richtlinieneinstellungen