Zertifikatsvorlage erstellen
Auf dieser Seite werden die Attribute einer Zertifikatvorlage beschrieben und es wird erläutert, wie Sie eine Zertifikatvorlage erstellen können. Weitere Informationen zu Zertifikatsvorlagen finden Sie unter Zertifikatsvorlagen.
Erforderliche Rollen
Um die Berechtigungen zu erhalten, die Sie zum Erstellen einer Zertifikatvorlage benötigen, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle CA Service Operation Manager (roles/privateca.caManager
) für das Projekt, den Ordner oder die Organisation zuzuweisen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Zertifikatsvorlage erstellen
Verwenden Sie eine der folgenden Methoden, um eine Zertifikatvorlage zu erstellen:
Console
Rufen Sie in der Google Cloud Console die Seite Certificate Authority Service auf.
Klicken Sie auf den Tab Vorlagenmanager und dann auf Vorlage erstellen.
Wählen Sie in der Liste Region einen Speicherort für die Zertifikatsvorlage aus. Dies muss derselbe Standort sein wie der CA-Pool, den Sie mit der Zertifikatvorlage verwenden möchten.
Geben Sie im Feld ID der Zertifikatsvorlage eine eindeutige Kennung für die Zertifikatsvorlage ein. Geben Sie optional eine Beschreibung für die Zertifikatsvorlage an.
Klicken Sie auf Weiter.
Wenn Sie x.509-Standardwerte für Zertifikate konfigurieren möchten, die diese Vorlage verwenden, klicken Sie auf die Ein/Aus-Schaltfläche Vordefinierte Werte in Zertifikate einschließen, die mit dieser Zertifikatsvorlage ausgestellt werden. Klicken Sie dann auf Vordefinierte Werte konfigurieren.
Richten Sie die vordefinierten Werte mit den folgenden Informationen ein:
Basisschlüsselverwendung definieren
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 die gewünschten Optionen aus der Liste aus.
- Klicken Sie auf Weiter.
Erweiterte Schlüsselverwendung definieren
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 Server- und 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 die gewünschten Optionen aus.
- Klicken Sie auf Weiter.
Richtlinienkennungen definieren
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:
- Optional: Fügen Sie die Richtlinien-ID in das Feld Richtlinien-IDs ein.
- Klicken Sie auf Weiter.
AIA-OCSP-Server (Authority Information Access) hinzufügen
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.
Das Hinzufügen von OCSP-Servern ist optional. So fügen Sie die OCSP-Server hinzu, die im Feld „AIA-Erweiterung“ 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.
CA-Optionen
Das Feld CA-Optionen in einer Zertifikatvorlage definiert, wie das resultierende Zertifikat in einer Zertifizierungsstellenhierarchie verwendet werden kann. Es bestimmt im Wesentlichen, 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, mit denen die X.509-Erweiterungen gesteuert werden.
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
, handelt es sich um ein Zertifikat für Endentitäten, mit dem keine anderen Zertifikate signiert werden können. 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, die steuern, wie lang eine Zertifikatskette sein darf, die von einem bestimmten Zertifikat ausgeht.Damit wird die maximale Anzahl von Zertifizierungsstellen angegeben, die mit diesem CA-Zertifikat verkettet werden können. Wenn die maximale Ausstellerpfadlänge auf
0
festgelegt ist, kann die Zertifizierungsstelle nur Endentitätzertifikate ausstellen. Wenn sie auf1
gesetzt ist, kann die Kette unter diesem CA-Zertifikat nur eine untergeordnete CA enthalten. Wenn kein Wert deklariert wird, ist die Anzahl der untergeordneten Zertifizierungsstellen in der Kette unter dieser Zertifizierungsstelle unbegrenzt.- Klicken Sie auf Weiter.
Zusätzliche Erweiterungen konfigurieren
Optional: Sie können zusätzliche benutzerdefinierte Erweiterungen konfigurieren, die in die vom CA-Pool ausgestellten Zertifikate aufgenommen werden sollen. Gehen Sie dazu so vor:
- 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 vordefinierten Werte zu speichern.
Gehen Sie als Nächstes zum Abschnitt Einschränkungen für Erweiterungen konfigurieren. Wählen Sie eine der folgenden Optionen aus:
- Alle Erweiterungen aus Zertifikatsanfragen in das Zertifikat kopieren
- Alle Erweiterungen aus Zertifikatsanfragen löschen
- Bestimmte Erweiterungen aus Zertifikatsanfragen in das Zertifikat kopieren
- Wenn Sie bestimmte Erweiterungen kopieren möchten, haben Sie folgende Möglichkeiten:
- Klicken Sie auf das Feld Bekannte Zertifikaterweiterungen und entfernen Sie die nicht benötigten Erweiterungen aus der Liste.
- Fügen Sie im Feld Benutzerdefinierte Erweiterungen die Objektkennungen für Erweiterungen hinzu, die in den Zertifikaten enthalten sein sollen, die vom CA-Pool ausgestellt werden.
Klicken Sie auf Weiter und rufen Sie den Bereich Identitätseinschränkungen konfigurieren auf. Wenn Sie Einschränkungen für den Antragsteller und die SANs in den Zertifikaten konfigurieren möchten, die vom CA-Pool ausgestellt werden, wählen Sie eine oder beide der folgenden Optionen aus:
- Antragsteller aus Zertifikatsanfragen in das Zertifikat kopieren
- Alternative Antragstellernamen (Subject Alternative Name, SAN) aus Zertifikatsanfragen in das Zertifikat kopieren
Klicken Sie auf Weiter und dann auf Fertig.
gcloud
gcloud privateca templates create TEMPLATE_ID \
--copy-subject \
--copy-sans \
--identity-cel-expression <expr> \
--predefined-values-file FILE_PATH \
--copy-all-requested-extensions \
--copy-extensions-by-oid <1.2.3.4,5.6.7.8> \
--copy-known-extensions <ext1,ext2>
Ersetzen Sie Folgendes:
- TEMPLATE_ID: die eindeutige Kennung der Zertifikatvorlage.
- FILE_PATH: Die YAML-Datei, die die von der Zertifikatvorlage festgelegten X.509-Werte beschreibt.
Mit dem Flag --copy-sans
kann die Erweiterung für den alternativen Antragstellernamen (Subject Alternative Name, SAN) aus der Zertifikatsanfrage in das signierte Zertifikat kopiert werden. Alternativ können Sie --no-copy-sans
angeben, um alle vom Aufrufer angegebenen SANs aus der Zertifikatsanfrage zu entfernen.
Mit dem Flag --copy-subject
kann der Antragsteller aus der Zertifikatsanfrage in das signierte Zertifikat kopiert werden. Alternativ können Sie --no-copy-subject
angeben, um alle vom Aufrufer angegebenen Betreffzeilen aus der Zertifikatsanfrage zu entfernen.
Das Flag --identity-cel-expression
verwendet einen CEL-Ausdruck, der vor der Ausstellung des Zertifikats für den Inhaber und den alternativen Inhabernamen (Subject Alternative Name, SAN) des Zertifikats ausgewertet wird. Er gibt einen booleschen Wert zurück, der angibt, ob die Anfrage zulässig sein soll. Informationen zur Verwendung eines CEL-Ausdrucks (Common Expression Language) für eine Zertifikatsvorlage finden Sie unter CEL für Zertifikatsvorlagen verwenden.
Das Flag --predefined-values-file
gibt den Pfad zu einer YAML-Datei an, in der alle vordefinierten X.509-Werte beschrieben werden, die von dieser Vorlage festgelegt werden. Die bereitgestellten Erweiterungen werden in alle Zertifikatsanfragen kopiert, die diese Vorlage verwenden. Sie haben Vorrang vor allen zulässigen Erweiterungen in der Zertifikatsanfrage. Wenn Sie einen Teil der vordefinierten X.509-Werte aktualisieren, wird der gesamte Satz der vordefinierten X.509-Werte ersetzt.
Wenn das Flag --copy-all-requested-extensions
festgelegt ist, werden alle in der Zertifikatsanfrage angegebenen Erweiterungen in das signierte Zertifikat kopiert.
Wenn das Flag --copy-extensions-by-oid
festgelegt ist, werden bestimmte OIDs aus der Zertifikatsanfrage in das signierte Zertifikat kopiert.
Wenn das Flag --copy-known-extensions
festgelegt ist, werden bestimmte Erweiterungen aus der Zertifikatsanfrage in das signierte Zertifikat kopiert. Diese bekannten Erweiterungen können eine der folgenden sein: base-key-usage
, extended-key-usage
, ca-options
, policy-ids
oder aia-ocsp-servers
.
Entfernen Sie das Flag --copy-all-requested-extensions
, um alle X.509-Erweiterungen in der Zertifikatsanfrage zu ignorieren, aber die in dieser Vorlage definierten vordefinierten Werte beizubehalten.
Hier sehen Sie ein Beispiel für die Konfiguration einer Zertifikatsvorlage:
keyUsage:
baseKeyUsage:
digitalSignature: true
keyEncipherment: true
contentCommitment: false
dataEncipherment: false
keyAgreement: false
certSign: false
crlSign: false
encipherOnly: false
decipherOnly: false
extendedKeyUsage:
serverAuth: true
clientAuth: false
codeSigning: false
emailProtection: false
timeStamping: false
ocspSigning: false
caOptions:
isCa: true
maxIssuerPathLength: 1
policyIds:
- objectIdPath:
- 1
- 2
- 3
additionalExtensions:
- objectId:
objectIdPath:
- 1
- 2
- 3
critical: false
value: "base64 encoded extension value"
Werte, die nicht in der YAML-Datei angegeben sind, werden entweder weggelassen oder auf false
gesetzt.
Die folgenden Erweiterungen werden ausgelassen, wenn kein Wert angegeben ist:
keyUsage
policyIds
additionalExtensions
- Das Feld
maxIssuerPathLength
in der ErweiterungcaOptions
Für die folgenden Erweiterungen gilt standardmäßig false
, wenn kein Wert angegeben ist:
- Das Feld
isCa
in der ErweiterungcaOptions
Zertifikatsvorlage für gängige Szenarien erstellen
In diesem Abschnitt finden Sie gcloud
-Befehle zum Erstellen einer Zertifikatvorlage für gängige Anwendungsfälle.
TLS-Zertifikate für DNS-Server für eine beliebige Domain
So erstellen Sie eine Zertifikatvorlage zum Ausstellen von Server-TLS-Zertifikaten, die beliebige Domains zulassen:
Erstellen Sie eine Datei mit dem Namen
leaf_server_tls_values.yaml
und fügen Sie ihr die folgende TLS-Konfiguration für Endentitätsserver hinzu:leaf_server_tls_values.yaml
keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true caOptions: isCa: false
Führen Sie den folgenden
gcloud
-Befehl aus, um nur Zertifikate mit SANs vom TypDNS
zuzulassen:gcloud
gcloud privateca templates create server-tls \ --predefined-values-file leaf_server_tls_values.yaml \ --copy-sans --no-copy-subject \ --identity-cel-expression "subject_alt_names.all(san, san.type == DNS)"
Weitere Informationen zum Befehl
gcloud privateca templates create
finden Sie unter gcloud privateca templates create.
TLS-Zertifikate für DNS-Server mit nur Testdomains
Verwenden Sie den folgenden gcloud
-Befehl, um eine Zertifikatvorlage zum Ausstellen von Server-TLS-Zertifikaten mit DNS-SANs zu erstellen, die auf Testdomains beschränkt sind:
gcloud
gcloud privateca templates create server-tls \
--predefined-values-file leaf_server_tls_values.yaml \
--copy-sans --no-copy-subject \
--identity-cel-expression "subject_alt_names.all(san, san.type == DNS && san.value.endsWith('.test.example.com'))"
Der Inhalt der Datei leaf_server_tls_values.yaml
muss mit dem vorherigen Beispiel übereinstimmen.
Weitere Informationen zur Verwendung von CEL-Ausdrücken, um sicherzustellen, dass DNS-Namen mit einem bestimmten String beginnen oder enden, finden Sie unter CEL-Beispielausdrücke.
Workload Identity-Zertifikate
So erstellen Sie eine Zertifikatsvorlage zum Ausstellen von Zertifikaten für gegenseitiges TLS (mTLS):
Erstellen Sie eine Datei mit dem Namen
leaf_mtls_values.yaml
und fügen Sie ihr die folgende Konfiguration für die gegenseitige TLS-Authentifizierung für Endentitäten hinzu.leaf_mtls_values.yaml
keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: false
Wenn Sie nur Zertifikate mit SPIFFE-URI-SANs zulassen möchten, verwenden Sie den folgenden
gcloud
-Befehl:gcloud
gcloud privateca templates create workload-spiffe \ --predefined-values-file leaf_mtls_values.yaml \ --copy-sans --no-copy-subject \ --identity-cel-expression "subject_alt_names.all(san, san.type == URI && san.value.startsWith('spiffe://'))"
Weitere Informationen zum Befehl
gcloud privateca templates create
finden Sie unter gcloud privateca templates create.
Weitere Informationen zur Verwendung von CEL-Ausdrücken, um sicherzustellen, dass DNS-Namen mit einem bestimmten String beginnen oder enden, finden Sie unter CEL-Beispielausdrücke.
Zugriff auf die Zertifikatvorlage gewähren
Sie können eine Zertifikatsvorlage verwenden, wenn Sie die Rolle „Nutzer der CA Service-Zertifikatsvorlage“ (roles/privateca.templateUser
) haben. Wir empfehlen, dass die Autoren einer Zertifikatsvorlage die Rolle „Nutzer der CA Service-Zertifikatsvorlage“ den Mitgliedern der Organisation zuweisen, die diese Zertifikatsvorlage verwenden könnten.
Verwenden Sie den folgenden gcloud
-Befehl, um allen Nutzern in der Domain example.com
die Rolle „Nutzer der CA Service-Zertifikatsvorlage“ (roles/privateca.templateUser
) zuzuweisen:
gcloud
gcloud privateca templates add-iam-policy-binding TEMPLATE_ID \
--member "domain:example.com" \
--role "roles/privateca.templateUser"
Ersetzen Sie Folgendes:
- TEMPLATE_ID: die eindeutige Kennung der Zertifikatvorlage.
Weitere Informationen zum Befehl gcloud privateca templates add-iam-policy-binding
finden Sie unter gcloud privateca templates add-iam-policy-binding.
Weitere Informationen zu IAM-Rollen für CA Service und den zugehörigen Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Nächste Schritte
- Weitere Informationen zur Common Expression Language
- Weitere Informationen zur Verwendung der Common Expression Language
- Weitere Informationen zu Zertifikatprofilen