Zertifizierungsstellenpool eine Zertifikatsausstellungsrichtlinie hinzufügen

Auf dieser Seite wird beschrieben, wie Sie einem CA-Pool eine Zertifikatsausstellungsrichtlinie hinzufügen.

Mit einer Richtlinie zur Zertifikatsausstellung können Sie die alternativen Antragstellernamen (Subject Alternative Names, SANs) angeben, die in den ausgestellten Zertifikaten enthalten sein können. Sie können die Zertifikatsausstellungsrichtlinie 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 Eine einzelne Rolle zuweisen.

  • Erstellen Sie einen CA-Pool.

Datei mit der Zertifikatsausstellungsrichtlinie hinzufügen

So fügen Sie einem vorhandenen Zertifizierungsstellenpool eine Zertifikatsausstellungsrichtlinie hinzu:

Console

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

    Zum Certificate Authority Service

  2. Klicken Sie auf der Seite CA-Pool-Manager auf den Namen des CA-Pools, für den Sie eine Zertifikatsausstellungsrichtlinie hinzufügen möchten.

  3. Klicken Sie auf der Seite CA-Pool auf Bearbeiten.

Identitätseinschränkungen konfigurieren

So konfigurieren Sie Einschränkungen für den Betreff und die SANs in den vom CA-Pool ausgestellten Zertifikaten:

  1. Optional: Klicken Sie auf die Ein-/Aus-Schaltfläche, um zu verhindern, dass Inhaber in Zertifikatsanfragen weitergeleitet werden.
  2. Optional: Klicken Sie auf die Ein-/Aus-Schaltfläche, um zu verhindern, dass alternative Antragstellernamen in Zertifikatsanfragen weitergegeben werden.
  3. Optional: Fügen Sie einen CEL-Ausdruck (Common Expression Language) hinzu, um die Zertifikatsthemen einzuschränken. Weitere Informationen finden Sie unter CEL verwenden.
  4. Klicken Sie auf Next (Weiter).
Einschränkungen für Erweiterungen konfigurieren

Klicken Sie auf die Ein-/Aus-Schaltfläche, um zu verhindern, dass alle Erweiterungen aus Zertifikatsanfragen in den ausgestellten Zertifikaten enthalten sind.

Nachdem Sie auf die Ein-/Aus-Schaltfläche geklickt haben, wird das Feld Bekannte Zertifikaterweiterungen angezeigt, in dem Sie die Zertifikatserweiterungen auswählen können. So wählen Sie die Zertifikatserweiterungen aus:

  1. Optional: Klicken Sie auf das Feld Bekannte Zertifikatserweiterungen und entfernen Sie die nicht erforderlichen Erweiterungen aus dem Menü.
  2. Optional: Fügen Sie im Feld Benutzerdefinierte Erweiterungen die Objektkennungen für Erweiterungen hinzu, die in den vom CA-Pool ausgestellten Zertifikaten enthalten sein sollen.
Referenzwerte konfigurieren

So konfigurieren Sie Referenzwerte in den Zertifikaten, die vom CA-Pool ausgestellt werden:

  1. Klicken Sie auf die Ein-/Aus-Schaltfläche.
  2. Klicken Sie auf Referenzwerte konfigurieren.
Basisschlüsselverwendung definieren

Mit dieser Einstellung können Sie konfigurieren, wie der im Zertifikat enthaltene Schlüssel verwendet werden soll. Zu den Optionen für die Schlüsselverwendung gehören u. a. die Schlüsselverschlüsselung, die Datenverschlüsselung, die Zertifikatssignierung und die CRL-Signierung.

Weitere Informationen finden Sie unter Schlüsselverwendung.

So definieren Sie die Basisschlüsselverwendungen:

  1. Optional: Klicken Sie im angezeigten Fenster auf die Ein-/Aus-Schaltfläche, wenn Sie Basisschlüsselverwendungen für die Zertifikate angeben möchten.
  2. Wählen Sie mithilfe der Kontrollkästchen aus, wie ein Schlüssel verwendet werden soll.
  3. Wählen Sie aus, wie ein Schlüssel verwendet werden soll.
  4. Klicken Sie auf Next (Weiter).
Erweiterte Schlüsselverwendung definieren

Mit dieser Einstellung lassen sich detailliertere Szenarien auswählen, in denen der im Zertifikat enthaltene Schlüssel verwendet werden kann. Zu den Optionen gehören unter anderem Serverauthentifizierung, Clientauthentifizierung, Codesignatur, E-Mail-Schutz und mehr.

Erweiterte Schlüsselverwendungen werden mithilfe von Objektkennungen (OIDs) definiert. Wenn Sie die erweiterten Schlüsselverwendungen nicht konfigurieren, sind alle Schlüsselnutzungsszenarien zulässig.

Weitere Informationen finden Sie unter Erweiterte Schlüsselverwendung.

So definieren Sie die erweiterten Schlüsselverwendungen:

  1. Optional: Klicken Sie auf die Ein-/Aus-Schaltfläche, um die erweiterten Schlüsselverwendungen für die Zertifikate anzugeben, die der CA-Pool ausstellt.
  2. Klicken Sie die Kästchen für die erweiterten Schlüsselnutzungsszenarien an.
  3. Klicken Sie auf Next (Weiter).
Richtlinienkennungen definieren

Die Erweiterung der Zertifikatsrichtlinien im Zertifikat gibt die Richtlinien an, denen der ausstellende CA-Pool folgt. Diese Erweiterung kann Informationen darüber 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 Zertifikatrichtlinien.

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

  1. Optional: Geben Sie die Richtlinien-ID in das Feld Richtlinien-IDs ein.
  2. Klicken Sie auf Next (Weiter).
AIA-OCSP-Server (Authority Information Access) hinzufügen

Die AIA-Erweiterung in einem Zertifikat bietet die folgenden Informationen:

  • Adresse der OCSP-Server, von denen aus 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.

  1. Optional: Klicken Sie auf Element hinzufügen.
  2. Geben Sie im Feld Server-URL die URL des OCSP-Servers ein.
  3. Klicken Sie auf Fertig.
  4. Klicken Sie auf Next (Weiter).
Zusätzliche Erweiterungen konfigurieren

So konfigurieren Sie zusätzliche benutzerdefinierte Erweiterungen, die in die vom CA-Pool ausgestellten Zertifikate einbezogen werden: Das folgende Verfahren ist optional.

  1. Klicken Sie auf Zeile hinzufügen.
  2. Geben Sie im Feld Objekt-ID eine gültige Objektkennung in Form von punktgetrennten Ziffern ein.
  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.

Klicken Sie zum Speichern aller Basiswertkonfigurationen auf Fertig.

gcloud

Wenn Sie die Google Cloud CLI verwenden möchten, um einem CA-Pool eine Zertifikatsausstellungsrichtlinie hinzuzufügen, müssen Sie eine YAML-Datei erstellen, in der die Einschränkungen für die Zertifikate beschrieben sind, die der CA-Pool ausstellen kann. Der Inhalt entspricht einer IssuancePolicy.

  1. 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 Feld allowSubjectPassthrough auf true gesetzt ist, wird das Feld „Betreff“ aus einer Zertifikatsanfrage in das signierte Zertifikat kopiert. Andernfalls wird der angeforderte Subjekt verworfen.
    • Wenn das Feld allowSubjectAltNamesPassthrough auf true gesetzt ist, wird die Erweiterung „SubjectAltNames“ aus einer Zertifikatsanfrage in das signierte Zertifikat kopiert. Andernfalls wird der angeforderte SubjectAltNames-Wert verworfen.
  2. Führen Sie den folgenden Befehl aus, um die Zertifikatsausstellungsrichtlinie 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 zur Datei policy.yaml.

    Weitere Informationen zum Befehl gcloud privateca pools update finden Sie unter gcloud privateca channels 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 zur Zertifikatsausstellung zu erstellen.

Zulässige X.509-Werte einschränken oder erzwingen

Ein Zertifizierungsstellenpool kann die zulässigen X.509-Werte in Zertifikatsanfragen einschränken, 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 über das Feld baseline_values überschrieben.

Für baseline_values 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, ersetzt die Aktualisierung alle Werte im Feld baseline_values.

  • Beispiel: Beschränken Sie eine Zertifizierungsstelle so, dass nur Zertifikate der Endentität mit X.509-Werten für gegenseitiges TLS (mTLS) ausgestellt werden.

    policy.yaml

    baselineValues:
      caOptions:
        isCa: false
      keyUsage:
        baseKeyUsage:
          digitalSignature: true
          keyEncipherment: true
        extendedKeyUsage:
           clientAuth: true
           serverAuth: true
    
  • Beispiel: Beschränken Sie eine Zertifizierungsstelle so, 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 im Hinblick 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 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 das aufgelöste X.509-Subjekt und das SAN zu validieren, bevor ein Zertifikat signiert wird. Weitere Informationen zur Verwendung von CEL-Ausdrücken finden Sie unter CEL verwenden.

  • Beispiel: Nur SANs zulassen, die DNS-Namen als us.google.org haben oder auf .google.com enden.

    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 mit spiffe://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 zulassen, die die E-Mail-Adressen example@google.com haben oder auf @google.org enden.

    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 länger als die maximale Lebensdauer ist, wird die Lebensdauer des Zertifikats explizit gekü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 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 letzten Methode kein Nachweis des Besitzes des zugehörigen privaten Schlüssels erforderlich ist. Diese Einschränkungen können Sie im Feld allowedIssuanceModes festlegen.

Weitere Informationen dazu, wie Sie festlegen, wie Zertifikate von einem CA-Pool angefordert werden können, finden Sie unter IssuanceModes.

Weitere Informationen zum Anfordern von Zertifikaten finden Sie unter Zertifikate anfordern und ausgestellte Zertifikate ansehen.

  • Beispiel: Nur CSR-Ausstellungen zulassen

policy.yaml

allowedIssuanceModes:
  allowCsrBasedIssuance: True
  allowConfigBasedIssuance: False

Die Public-Key-Algorithmen der Zertifikatsanfrage einschränken

Wenn Sie die Mindestlänge und die Algorithmen für öffentliche Schlüssel einschränken möchten, die Zertifikate verwenden können, können Sie das Feld allowedKeyTypes in der YAML-Datei für die Zertifikatsausstellungsrichtlinie verwenden. 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 kleiner als 2.048 Bit ist. Wenn Sie einen RSA-Schlüssel mit einer Modulusgröße von weniger als 2.048 Bit verwenden möchten, müssen Sie ihn mithilfe der Richtlinie zur Zertifikatsausstellung ausdrücklich zulassen.

Beispiel: Lassen Sie 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 die NIST P-256-Kurve zu.

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 mit elliptischer Kurve über der NIST P-256-Kurve.
  • ECDSA_P384: Digitale Signatur mit elliptischer Kurve über die NIST P-384-Kurve.
  • EDDSA_25519: Der Edwards-Kurven-Algorithmus für digitale Signaturen über Kurve 25519, wie in RFC 8410 beschrieben.

Nächste Schritte