Einem CA-Pool eine Richtlinie zur Zertifikatsausstellung hinzufügen
Auf dieser Seite wird beschrieben, wie Sie einem CA-Pool eine Zertifikatsausstellungsrichtlinie hinzufügen.
Mit einer Richtlinie zur Zertifikatsausstellung können Sie den Antragsteller und alternative Antragstellernamen (SANs) angeben, die in den ausgestellten Zertifikaten enthalten sein können. Sie können die Richtlinie für die Zertifikatsausstellung beim Erstellen eines Zertifizierungsstellenpools angeben oder einen vorhandenen Zertifizierungsstellenpool aktualisieren, um eine Ausstellungsrichtlinie hinzuzufügen.
Weitere Informationen finden Sie unter Übersicht über Vorlagen und Ausstellungsrichtlinien.
Hinweise
Sie benötigen die IAM-Rolle „CA Service Operation Manager“ (
roles/privateca.caManager
) oder die IAM-Rolle „CA Service Admin“ (roles/privateca.admin
). Informationen zum Zuweisen einer IAM zu einem Hauptkonto finden Sie unter Einzelne Rolle zuweisen.
Datei mit der Richtlinie zur Zertifikatsausstellung hinzufügen
So fügen Sie einem vorhandenen Zertifizierungsstellenpool eine Richtlinie zur Zertifikatsausstellung hinzu:
Console
Rufen Sie in der Google Cloud Console die Seite Certificate Authority Service auf.
Klicken Sie auf der Seite CA-Poolmanager auf den Namen des Zertifizierungsstellenpools, für den Sie eine Richtlinie zur Zertifikatsausstellung hinzufügen möchten.
Klicken Sie auf der Seite CA-Pool auf
Bearbeiten.
So konfigurieren Sie Einschränkungen für das Betreff und die SANs in den vom CA-Pool ausgestellten Zertifikaten:
- Optional: Klicken Sie auf die Ein/Aus-Schaltfläche, um zu verhindern, dass Inhaber in Zertifikatsanfragen weitergeleitet werden.
- Optional: Wenn Sie nicht 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, um Zertifikatsinhaber einzuschränken. Weitere Informationen finden Sie unter CEL verwenden.
- Klicken Sie auf Next (Weiter).
Klicken Sie auf die Ein/Aus-Schaltfläche, um zu verhindern, dass alle Erweiterungen aus Zertifikatsanfragen in die ausgestellten Zertifikate aufgenommen werden.
Daraufhin wird das Feld Bekannte Zertifikaterweiterungen angezeigt, in dem Sie die Zertifikatserweiterungen auswählen können. So wählen Sie die Zertifikatserweiterungen aus:
- Optional: Klicken Sie auf das Feld Bekannte Zertifikatserweiterungen und entfernen Sie im Menü die nicht erforderlichen Erweiterungen.
- Optional: Fügen Sie im Feld Benutzerdefinierte Erweiterungen die Objektkennungen für Erweiterungen hinzu, die in die vom Zertifizierungsstellenpool ausgestellten Zertifikate einbezogen werden sollen.
So konfigurieren Sie Referenzwerte in den Zertifikaten, die vom CA-Pool ausgestellt werden:
- Klicken Sie auf die Ein/Aus-Schaltfläche.
- Klicken Sie auf Referenzwerte konfigurieren.
Mit dieser Einstellung können Sie konfigurieren, wie der im Zertifikat enthaltene Schlüssel verwendet werden kann. Zu den Optionen für die Schlüsselverwendung gehören u. a. die Schlüsselverschlüsselung, die Datenverschlüsselung, die Zertifikatssignierung und die Zertifikatssignierung.
Weitere Informationen finden Sie unter Schlüsselverwendung.
So definieren Sie die Basisschlüsselverwendungen:
- Optional: Klicken Sie im angezeigten Fenster auf die Ein/Aus-Schaltfläche, wenn Sie die Basisschlüsselverwendungen für die Zertifikate angeben möchten.
- Wählen Sie mithilfe der Kästchen aus, wie der Schlüssel verwendet werden soll.
- Klicken Sie auf Next (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 Serverauthentifizierung, Clientauthentifizierung, Codesignatur und E-Mail-Schutz.
Erweiterte Schlüsselverwendungen werden über Objektkennungen (OIDs) definiert. Wenn Sie die erweiterte Schlüsselverwendung nicht konfigurieren, sind alle Schlüsselnutzungsszenarien zulässig.
Weitere Informationen finden Sie unter Erweiterte Schlüsselverwendung.
So definieren Sie die erweiterte Schlüsselverwendung:
- Optional: Klicken Sie auf die Ein/Aus-Schaltfläche, um die erweiterten Schlüsselverwendungen für die Zertifikate anzugeben, die der Zertifizierungsstellenpool ausstellt.
- Klicken Sie die Kästchen für die erweiterten Schlüsselnutzungsszenarien an.
- Klicken Sie auf Next (Weiter).
Die Erweiterung der Zertifikatrichtlinien im Zertifikat drückt die Richtlinien aus, denen der ausstellende CA-Pool folgt. Diese Erweiterung kann Informationen dazu enthalten, wie Identitäten vor dem Ausstellen von Zertifikaten validiert werden, wie Zertifikate widerrufen werden und wie die Integrität des Zertifizierungsstellenpools sichergestellt wird. Mit dieser Erweiterung können Sie die vom CA-Pool ausgestellten Zertifikate prüfen und sehen, wie die Zertifikate verwendet werden.
Weitere Informationen finden Sie unter Zertifikatsrichtlinien.
So geben Sie die Richtlinie an, die die Zertifikatsnutzung definiert:
- Optional: Fügen Sie die Richtlinien-ID in das Feld Richtlinien-IDs ein.
- Klicken Sie auf Next (Weiter).
Die AIA-Erweiterung in einem Zertifikat enthält die folgenden Informationen:
- Adresse der OCSP-Server, von denen Sie den Sperrstatus des Zertifikats prüfen können.
- Die Zugriffsmethode für den Aussteller des Zertifikats.
Weitere Informationen finden Sie unter Zugriff auf Autorisierungsinformationen.
So fügen Sie die OCSP-Server hinzu, die in den Zertifikaten im Feld der AIA-Erweiterung angezeigt werden: 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 Next (Weiter).
So konfigurieren Sie zusätzliche benutzerdefinierte Erweiterungen für die Zertifikate, die vom CA-Pool ausgestellt werden: Das folgende Verfahren ist optional.
- Klicken Sie auf Zeile hinzufügen.
- Geben Sie im Feld Objekt-ID eine gültige Objektkennung in Form von punktgetrennten Ziffern ein.
- 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 Basiswertkonfigurationen zu speichern.
gcloud
Wenn Sie die Google Cloud CLI verwenden möchten, um einem Zertifizierungsstellenpool eine Richtlinie zur Zertifikatsausstellung hinzuzufügen, müssen Sie eine YAML-Datei erstellen, in der die Einschränkungen für die Zertifikate beschrieben sind, die der Zertifizierungsstellenpool 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 „Betreff“ 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 wird der angeforderte Feld „SubjectAltNames“ verworfen.
Führen Sie den folgenden Befehl aus, um die Richtlinie zur Zertifikatsausstellung eines Zertifizierungsstellenpools mithilfe 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 Zertifizierungsstellenpools.
- FILE_PATH: Der Pfad der Datei
policy.yaml
.
Weitere Informationen zum Befehl
gcloud privateca pools update
finden Sie unter gcloud privatecapools update.
Weitere Informationen finden Sie unter CA-Pool erstellen.
Unterstützte Einschränkungen
CA Service unterstützt die folgenden Einschränkungen für Ausstellungsrichtlinien. Sie können die folgenden Einschränkungen nach Bedarf kombinieren, um eine benutzerdefinierte Richtlinie für die Ausstellung von Zertifikaten zu erstellen.
Zulässige X.509-Werte einschränken oder erzwingen
Ein Zertifizierungsstellenpool kann die zulässigen X.509-Werte in Zertifikatsanfragen durch Konfigurieren des Felds passthrough_extensions einschränken.
Ein Zertifizierungsstellenpool kann auch explizit X.509-Werte angeben, die allen seinen ausgestellten Zertifikaten hinzugefügt werden sollen. Dabei werden alle angeforderten Werte überschrieben. Verwenden Sie dazu das Feld baseline_values.
Mit den Werten für baseline_values eines Zertifizierungsstellenpools können Sie die folgenden Attribute angeben:
- Schlüsselverwendung
- Optionen für Zertifizierungsstellen
- AIA-OCSP-Server
- Zusätzliche X.509-Erweiterungen
Sie können diese Optionen auch zusammen verwenden.
Wenn Sie einen Teil des Felds baseline_values
aktualisieren, werden alle Werte im Feld baseline_values
ersetzt.
Beispiel: Beschränken Sie eine Zertifizierungsstelle so, dass nur Zertifikate der Endentität mit X.509-Werten für die gegenseitige TLS-Authentifizierung (mTLS) ausgestellt werden.
policy.yaml
baselineValues: caOptions: isCa: false keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: clientAuth: true serverAuth: true
Beispiel: Zertifizierungsstelle so einschränken, dass sie nur Signaturzertifikate für Endentitäten mit einer AIA-OCSP-Referenz-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 Zertifikatsprofil für mTLS der Endentität finden Sie unter mTLS der Endentität.
Zulässige Identitätsfelder einschränken
Wenn Sie die Identität von Zertifikaten einschränken möchten, die über einen CA-Pool ausgestellt wurden, können Sie einen CEL-Ausdruck (Common Expression Language) in das Feld identity_constraints der Ausstellungsrichtlinie einfügen. Die CEL-Ausdrücke ermöglichen beliebige Einschränkungen in Bezug auf den Subjekt-Domainnamen (einschließlich des allgemeinen Namens) und die SANs eines Zertifikats.
Weitere Informationen zur Verwendung 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 Betreff ü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 CEL-Ausdruck (Common Expression Language), um das aufgelöste X.509-Subjekt 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
us.google.org
oder 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: Nur SANs zulassen, die URIs
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 E-Mail-Adressen
example@google.com
oder der Endung@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
Mit dem Feld maximum_lifetime können Sie die Lebensdauer der ausgestellten Zertifikate einschränken. Wenn die angeforderte Lebensdauer eines Zertifikats größer als die maximale Lebensdauer ist, wird die Lebensdauer des Zertifikats explizit gekürzt.
Beispiel
Verwenden Sie die folgende policy.yaml
-Datei, um eine maximale Lebensdauer von 30 Tagen zu ermöglichen:
policy.yaml
maximumLifetime: 2592000s
Zulässige Zertifikatsausstellungsmodi einschränken
Sie können ein Zertifikat entweder über eine Anfrage zur Zertifikatsignierung (Certificate Signing Request, CSR) oder eine Inline-Beschreibung der angeforderten Werte anfordern. Einige Organisationen ziehen es vor, die Option einzuschränken, die verwendet werden kann, da bei der letzteren Methode kein Nachweis über den Besitz des zugehörigen privaten Schlüssels erforderlich ist. Diese Einschränkungen können im Feld allowedIssuanceModes festgelegt werden.
Weitere Informationen dazu, wie Sie festlegen, wie Zertifikate von einem Zertifizierungsstellenpool angefordert werden können, finden Sie unter IssuanceModes.
Weitere Informationen zum Anfordern von Zertifikaten finden Sie unter Zertifikatsanfrage erstellen.
Beispiel: Nur die Ausstellung von CSR zulassen
policy.yaml
allowedIssuanceModes:
allowCsrBasedIssuance: True
allowConfigBasedIssuance: False
Die Public-Key-Algorithmen der Zertifikatsanfrage einschränken
Wenn Sie die Mindestschlüssellänge und die Algorithmen für öffentliche Schlüssel einschränken möchten, die von Zertifikaten verwendet werden können, können Sie das Feld allowedKeyTypes in der YAML-Datei mit der Richtlinie zur Zertifikatsausstellung einschränken. Wenn dieses Feld angegeben ist, muss der öffentliche Schlüssel der Zertifikatsanfrage einem der in der YAML-Datei aufgeführten Schlüsseltypen entsprechen. 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 Modulogröße von weniger als 2.048 Bit verwenden möchten, müssen Sie ihn mithilfe der Richtlinie zur Zertifikatsausstellung explizit zulassen.
Beispiel: RSA-Schlüssel mit einer Modulgröße zwischen 3.072 Bit und 4.096 Bit (einschließlich) oder ECDSA-Schlüssel (Elliptic Curve Digital Signature Algorithm) über die NIST P-256-Kurve zulassen.
policy.yaml
allowedKeyTypes:
- rsa:
minModulusSize: 3072
maxModulusSize: 4096
- ellipticCurve:
signatureAlgorithm: ECDSA_P256
Sie können einen der folgenden Algorithmen für die Signatur elliptischer Kurven auswählen:
EC_SIGNATURE_ALGORITHM_UNSPECIFIED
: Es kann ein beliebiger Signaturalgorithmus verwendet werden.ECDSA_P256
: Digitale Signatur mit elliptischer Kurve über die NIST P-256-Kurve.ECDSA_P384
– Digitale Signatur mit elliptischer Kurve über die NIST P-384-Kurve.EDDSA_25519
: Der Edwards-Curve-Algorithmus für digitale Signaturen über 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 zur Verwaltung verschiedener Richtlinieneinstellungen