Richtlinie zur Zertifikatsausstellung zu einem Zertifizierungsstellenpool hinzufügen

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

Mit einer Richtlinie für die Zertifikatsausstellung können Sie die SANs (Subject and Subject Alternative Names) angeben, die in die ausgestellten Zertifikate aufgenommen werden können. Sie können die Richtlinie für die Zertifikatsausstellung 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

  • Sie benötigen die IAM-Rolle „CA Service Operation Manager“ (roles/privateca.caManager) oder „CA Service Admin“ (roles/privateca.admin). Informationen zum Zuweisen einer IAM zu einem Hauptkonto finden Sie unter Einzelne Rolle zuweisen.

  • Erstellen Sie einen CA-Pool.

Richtliniendatei für die Zertifikatsausstellung hinzufügen

So fügen Sie einem vorhandenen CA-Pool eine Richtlinie zur Zertifikatsausstellung 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-Poolmanager auf den Namen des CA-Pools, für den Sie eine Richtlinie zur Zertifikatsausstellung hinzufügen möchten.

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

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 Basiswerte konfigurieren.
Basisschlüsselverwendung definieren

Mit dieser Einstellung können Sie konfigurieren, wie der im Zertifikat enthaltene Schlüssel verwendet werden kann. Zu den Optionen für die Schlüsselnutzung gehören die Schlüsselverschlüsselung, die Datenverschlüsselung, die Zertifikatssignierung, die Zertifikatssperrlisten-Signierung und mehr.

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 die Basisschlüsselverwendungen für die Zertifikate angeben möchten.
  2. Klicken Sie die Kästchen an, um festzulegen, wie der Schlüssel verwendet werden soll.
  3. Legen Sie fest, wie ein Schlüssel verwendet werden soll.
  4. Klicken Sie auf Weiter.
Erweiterte Schlüsselverwendung definieren

Sie können diese Einstellung verwenden, um detailliertere Szenarien auszuwä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 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üsselnutzung.

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 Szenarien der erweiterten Schlüsselverwendung an.
  3. Klicken Sie auf Weiter.
Richtlinien-IDs definieren

Die Erweiterung der Zertifikatsrichtlinien im Zertifikat gibt die Richtlinien an, die der ausstellende Zertifizierungsstellenpool befolgt. Diese Erweiterung kann Informationen darüber 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 vom CA-Pool ausgestellten Zertifikate prüfen und sehen, wie die Zertifikate verwendet werden.

Weitere Informationen finden Sie unter Zertifikatsrichtlinien.

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

  1. Optional: Geben Sie im Feld Richtlinien-IDs die Richtlinien-ID ein.
  2. Klicken Sie auf Weiter.
Add Authority Information Access (AIA) OCSP-Server

Die AIA-Erweiterung in einem Zertifikat stellt die folgenden Informationen bereit:

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

So fügen Sie die OCSP-Server hinzu, die in den Zertifikaten im Feld für die 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 Weiter.
Zusätzliche Erweiterungen konfigurieren

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

  1. Klicken Sie auf Zeile hinzufügen.
  2. Geben Sie im Feld Objektkennzeichnung eine gültige Objektkennung ein, die als punktgetrennte Ziffern formatiert ist.
  3. Geben Sie im Feld Wert den base64-codierten Wert für die Kennung ein.
  4. 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 konfigurieren

Wenn Sie nicht möchten, dass alle Erweiterungen aus Zertifikatsanfragen in die ausgestellten Zertifikate aufgenommen werden, klicken Sie auf die Ein/Aus-Schaltfläche.

Wenn Sie auf die Ein/Aus-Schaltfläche klicken, 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 Zertifikaterweiterungen 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.
Identitätseinschränkungen konfigurieren

So konfigurieren Sie Einschränkungen für das Subjekt und die SANs in den Zertifikaten, die der CA-Pool ausstellt:

  1. Optional: Wenn Sie nicht möchten, dass Personen in Zertifikatsanfragen weitergegeben werden, klicken Sie auf die Ein/Aus-Schaltfläche.
  2. Optional: Wenn Sie nicht möchten, dass alternative Antragstellernamen in Zertifikatsanfragen weitergegeben werden, klicken Sie auf die Ein/Aus-Schaltfläche.
  3. Optional: Fügen Sie einen CEL-Ausdruck (Common Expression Language) hinzu, um Zertifikatsinhaber einzuschränken. Weitere Informationen finden Sie unter CEL verwenden.
  4. Klicken Sie auf Weiter.

Informationen zum Konfigurieren zusätzlicher Parameter in der Richtlinie für die Zertifikatsausstellung finden Sie unter IssuancePolicy.

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 „Subject“ 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 werden die angeforderten SubjectAltNames verworfen.
  2. Führen Sie den folgenden Befehl aus, um die Richtlinie für die Zertifikatsausstellung eines CA-Pools 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 privateca cards update.

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 Zertifikatsausstellung zu erstellen.

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

Ein CA-Pool kann die zulässigen X.509-Werte in Zertifikatsanfragen durch Konfigurieren des Felds passthrough_extensions einschränken.

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, ersetzt die Aktualisierung den gesamten Satz von Werten im Feld baseline_values.

  • 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: Schränken Sie eine Zertifizierungsstelle so ein, dass sie nur Zertifikate für die Codesignatur der Endentität mit einer AIA-OCSP-Basis-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 Zertifikatprofil für mTLS der Endentität 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 wurden, können Sie dem Feld identity_constraints der Ausstellungsrichtlinie einen Ausdruck in der Common Expression Language (CEL) hinzufügen. Die CEL-Ausdrücke ermöglichen willkürliche Einschränkungen für den Subjekt-Domainnamen (einschließlich des allgemeinen Namens) und die SANs eines Zertifikats.

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 einem angegebenen Subjekt 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 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 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 mit der E-Mail-Adresse 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 die maximale Lebensdauer überschreitet, wird die Lebensdauer des Zertifikats explizit abgeschnitten.

Beispiel

Verwenden Sie die folgende policy.yaml-Datei, um eine Lebensdauer von maximal 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. Diese Einschränkungen können Sie über das 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 Zertifikatsanfrage erstellen.

  • Beispiel: Nur CSR-Ausstellung zulassen.

policy.yaml

allowedIssuanceModes:
  allowCsrBasedIssuance: True
  allowConfigBasedIssuance: False

Algorithmen für öffentliche Schlüssel der Zertifikatsanfrage einschränken

Sie können das Feld allowedKeyTypes in der YAML-Datei für die Richtlinie für die Zertifikatsausstellung verwenden, um die Mindestschlüssellänge und die Algorithmen für öffentliche Schlüssel einzuschränken, die von Zertifikaten verwendet werden können. 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 unter 2.048 Bit liegt. Wenn Sie einen RSA-Schlüssel mit einer Modulusgröße von weniger als 2.048 Bit verwenden möchten, müssen Sie ihn über die Richtlinie zur Zertifikatsausstellung explizit zulassen.

Beispiel: RSA-Schlüssel mit einer Modulusgröße zwischen 3.072 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 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 – Digitale Signatur für elliptische Kurven über der NIST P-384-Kurve.
  • EDDSA_25519: Edwards-Curve-Digital Signature Algorithm über Kurve 25519, wie in RFC 8410 beschrieben.

Nächste Schritte