Zertifikatsvorlage erstellen

Auf dieser Seite werden die Attribute einer Zertifikatvorlage beschrieben und erläutert, wie Sie eine Zertifikatvorlage erstellen. Weitere Informationen zu Zertifikatsvorlagen finden Sie unter Zertifikatsvorlagen.

Erforderliche Rollen

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, um die Berechtigungen zu erhalten, die Sie zum Erstellen einer Zertifikatvorlage benötigen. 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

  1. Rufen Sie in der Google Cloud Console die Seite Certificate Authority Service auf.

    Zum Certificate Authority Service

  2. Klicken Sie auf den Tab Vorlagenmanager und dann auf Vorlage erstellen.

  3. Wählen Sie in der Liste Region einen Speicherort für die Zertifikatsvorlage aus. Dies muss derselbe Speicherort wie der des CA-Pools sein, den Sie mit der Zertifikatvorlage verwenden möchten.

  4. Geben Sie im Feld ID der Zertifikatsvorlage eine eindeutige Kennung für die Zertifikatsvorlage ein. Optional: Geben Sie eine Beschreibung für die Zertifikatsvorlage ein.

  5. Klicken Sie auf Weiter.

  6. 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.

  7. Richten Sie die vordefinierten Werte mithilfe der 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, die Datenverschlüsselung, die Zertifikatsignatur und die CRL-Signatur. Weitere Informationen finden Sie unter Schlüsselnutzung.

    1. Klicken Sie zum Auswählen der Basisschlüsselverwendungen auf die Ein/Aus-Schaltfläche Basisschlüsselverwendungen für Zertifikate angeben, die von diesem CA-Pool ausgestellt werden und wählen Sie dann eine der aufgeführten Optionen aus.
    2. Klicken Sie auf Weiter.

    Erweiterte Schlüsselverwendung definieren

    Diese Einstellung bezieht sich auf das Feld Extended Key Usage (EKU) in einem digitalen Zertifikat. Sie enthält detailliertere Einschränkungen für die Verwendung des Schlüssels, z. B. für die Server- und Clientauthentifizierung, die Codesignatur und den E-Mail-Schutz. Weitere Informationen finden Sie unter Erweiterte Schlüsselnutzung.

    Erweiterte Schlüsselverwendungen werden mit Objekt-IDs (OIDs) definiert. Wenn Sie die erweiterten Schlüsselverwendungen nicht konfigurieren, sind alle Szenarien für die Schlüsselverwendung zulässig.

    1. Klicken Sie zum Auswählen der erweiterten Schlüsselverwendungen 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.
    2. Klicken Sie auf Weiter.

    Richtlinienkennungen definieren

    Die Erweiterung „Zertifikatsrichtlinien“ im Zertifikat enthält die Richtlinien, denen der ausstellende CA-Pool 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 prüfen und sehen, wie sie verwendet werden.

    Weitere Informationen finden Sie unter Zertifizierungsrichtlinien.

    So legen Sie die Richtlinie fest, die die Zertifikatsnutzung definiert:

    1. Optional: Fügen Sie die Richtlinien-ID in das Feld Richtlinien-IDs ein.
    2. 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 Widerrufsstatus des Zertifikats prüfen können.
    • Die Zugriffsmethode für den Aussteller des Zertifikats.

    Weitere Informationen finden Sie unter Zugriff auf Informationen zu Behörden.

    Das Hinzufügen von OCSP-Servern ist optional. So fügen Sie die OCSP-Server hinzu, die in den Zertifikaten im Feld „AIA-Erweiterung“ angezeigt werden:

    1. Klicken Sie auf Zeile hinzufügen.
    2. Fügen Sie im Feld Server-URL die URL des OCSP-Servers hinzu.
    3. Klicken Sie auf Fertig.
    4. Klicken Sie auf Weiter.

    CA-Optionen

    Im Feld CA-Optionen einer Zertifikatsvorlage wird festgelegt, wie das resultierende Zertifikat in einer Zertifizierungsstellenhierarchie verwendet werden kann. Es wird im Wesentlichen festgelegt, ob ein Zertifikat zum Signieren anderer Zertifikate verwendet werden kann und gegebenenfalls welche Einschränkungen für die von ihm ausgestellten Zertifikate gelten.

    Wählen Sie aus den folgenden Optionen aus:

    1. Konfigurationen zum Beschreiben der CA-X.509-Erweiterungen einschließen: Geben Sie die Einstellungen in einer Zertifikatsvorlage an, die die X.509-Erweiterungen steuern.

    2. Ausgestellte Zertifikate auf die ausschließliche Verwendung für Zertifizierungsstellen einschränken: Diese Option wird nur angezeigt, wenn Sie das Kästchen im vorherigen Schritt aktivieren. Dieser boolesche Wert gibt an, ob es sich bei dem Zertifikat um ein CA-Zertifikat handelt. Wenn true festgelegt ist, kann das Zertifikat zum Signieren anderer Zertifikate verwendet werden. Wenn false angezeigt wird, handelt es sich um ein Zertifikat für Endentitäten, das keine anderen Zertifikate signieren kann. Wenn Sie auf diese Ein/Aus-Schaltfläche klicken, werden Sie aufgefordert, Namenseinschränkungen für die Erweiterung in CA-Zertifikaten zu definieren.

    3. Konfiguratioen zum Beschreiben der Pfadlängeneinschränkung für X.509-Erweiterungen einschließen: Mit diesen Einstellungen wird festgelegt, wie lang eine Zertifikatskette sein darf, die von einem bestimmten Zertifikat ausgeht.Außerdem 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ätszertifikate ausstellen. Wenn der Wert auf 1 festgelegt ist, kann die Kette unter diesem CA-Zertifikat nur eine untergeordnete Zertifizierungsstelle enthalten. Wenn kein Wert angegeben wird, ist die Anzahl der untergeordneten Zertifizierungsstellen in der Kette unter dieser Zertifizierungsstelle unbegrenzt.

    4. Klicken Sie auf Weiter.

    Zusätzliche Erweiterungen konfigurieren

    Optional: Sie können zusätzliche benutzerdefinierte Erweiterungen konfigurieren, die in den vom CA-Pool ausgestellten Zertifikaten enthalten sein sollen. Gehen Sie dazu so vor:

    1. Klicken Sie auf Zeile hinzufügen.
    2. Fügen Sie im Feld Objektkennung eine gültige Objektkennung in Form von punktgetrennten Ziffern hinzu.
    3. Fügen Sie im Feld Wert den base64-codierten Wert für die Kennung hinzu.
    4. Wenn die Erweiterung kritisch ist, wählen Sie Erweiterung ist kritisch aus.
  8. Klicken Sie auf Fertig, um alle vordefinierten Werte zu speichern.

  9. 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
  10. Wenn Sie bestimmte Erweiterungen kopieren möchten, haben Sie folgende Möglichkeiten:
    • Klicken Sie auf das Feld Bekannte Zertifikaterweiterungen und entfernen Sie die nicht erforderlichen Erweiterungen aus der Liste.
    • Fügen Sie im Feld Benutzerdefinierte Erweiterungen die Objekt-IDs für Erweiterungen hinzu, die in den vom CA-Pool ausgestellten Zertifikaten enthalten sein sollen.

  11. Klicken Sie auf Weiter und gehen Sie zum Abschnitt Identitätseinschränkungen konfigurieren. 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:

    • Subject aus den Zertifikatsanfragen in das Zertifikat kopieren
    • Alternative Antragstellernamen (Subject Alternative Name, SAN) aus Zertifikatsanfragen in das Zertifikat kopieren
    Optional: Fügen Sie im Abschnitt Identitätseinschränkungen konfigurieren einen CEL-Ausdruck (Common Expression Language) hinzu, um Einschränkungen für Zertifikatsinhaber zu definieren. Weitere Informationen finden Sie unter CEL verwenden.

  12. 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 Zertifikatsvorlage.
  • FILE_PATH: die YAML-Datei, die die von der Zertifikatsvorlage festgelegten X.509-Werte beschreibt.

Mit dem Flag --copy-sans kann die SAN-Erweiterung (Subject Alternative Name) aus der Zertifikatsanfrage in das signierte Zertifikat kopiert werden. Alternativ können Sie --no-copy-sans angeben, um alle vom Anrufer 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 Anrufer angegebenen Subjekte aus der Zertifikatsanfrage zu entfernen.

Das Flag --identity-cel-expression nimmt einen CEL-Ausdruck an, der vor der Ausstellung mit dem Inhaber und dem alternativen Inhabernamen des Zertifikats verglichen wird. Er gibt einen booleschen Wert zurück, der angibt, ob die Anfrage zulässig ist. Informationen zur Verwendung eines CEL-Ausdrucks (Common Expression Language) für eine Zertifikatvorlage finden Sie unter CEL für Zertifikatvorlagen verwenden.

Das Flag --predefined-values-file gibt den Pfad zu einer YAML-Datei an, in der alle vordefinierten X.509-Werte beschrieben werden, die mit dieser Vorlage festgelegt wurden. Die angegebenen 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 durch die Aktualisierung der gesamte Satz der vordefinierten X.509-Werte ersetzt.

Wenn das Flag --copy-all-requested-extensions gesetzt ist, werden alle in der Zertifikatsanfrage angegebenen Erweiterungen in das signierte Zertifikat kopiert.

Wenn das Flag --copy-extensions-by-oid gesetzt ist, werden bestimmte OIDs aus der Zertifikatsanfrage in das signierte Zertifikat kopiert.

Wenn das Flag --copy-known-extensions gesetzt ist, werden bestimmte Erweiterungen aus der Zertifikatsanfrage in das signierte Zertifikat kopiert. Diese bekannten Erweiterungen können einen der folgenden Werte haben: 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 ein Beispiel für die Konfiguration einer Zertifikatvorlage:

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 standardmäßig auf false gesetzt.

Die folgenden Erweiterungen werden weggelassen, wenn kein Wert angegeben ist:

  • keyUsage
  • policyIds
  • additionalExtensions
  • Feld „maxIssuerPathLength“ in der Erweiterung „caOptions

Für die folgenden Erweiterungen wird standardmäßig false verwendet, wenn kein Wert angegeben ist:

  • Feld „isCa“ in der Erweiterung „caOptions

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 jede Domain

So erstellen Sie eine Zertifikatsvorlage zum Ausstellen von Server-TLS-Zertifikaten, die jede Domain zulassen:

  1. 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
    
  2. Wenn Sie nur Zertifikate mit SANs vom Typ DNS zulassen möchten, führen Sie den folgenden gcloud-Befehl aus:

    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 des vorherigen Beispiels übereinstimmen.

Weitere Informationen zur Verwendung von CEL-Ausdrücken, um sicherzustellen, dass DNS-Namen mit einem bestimmten String beginnen oder enden, finden Sie unter Beispielausdrücke für CEL.

Zertifikate für Workload Identity

So erstellen Sie eine Zertifikatsvorlage zum Ausstellen von Zertifikaten für die gegenseitige TLS-Authentifizierung (mTLS):

  1. Erstellen Sie eine Datei mit dem Namen leaf_mtls_values.yaml und fügen Sie ihr die folgende Konfigurationsdatei für die gegenseitige TLS-Authentifizierung der Endentität hinzu.

    leaf_mtls_values.yaml

    keyUsage:
      baseKeyUsage:
        digitalSignature: true
        keyEncipherment: true
      extendedKeyUsage:
        serverAuth: true
        clientAuth: true
    caOptions:
      isCa: false
    
  2. 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 Beispielausdrücke für CEL.

Zugriff auf die Zertifikatsvorlage gewähren

Sie können eine Zertifikatsvorlage verwenden, wenn Sie die Rolle „Nutzer der CA Service-Zertifikatsvorlage“ (roles/privateca.templateUser) haben. Wir empfehlen den Autoren einer Zertifikatsvorlage, den Mitgliedern der Organisation, die diese Zertifikatsvorlage verwenden könnten, die Rolle „Nutzer der CA Service-Zertifikatsvorlage“ zu gewähren.

Wenn Sie allen Nutzern in der Domain example.com die Rolle „Nutzer der CA Service-Zertifikatsvorlage“ (roles/privateca.templateUser) zuweisen möchten, verwenden Sie den folgenden gcloud-Befehl:

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 Zertifikatsvorlage.

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 den CA-Dienst und die zugehörigen Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.

Nächste Schritte