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.

  • Erstellen Sie einen CA-Pool.

Datei mit der Richtlinie zur Zertifikatsausstellung hinzufügen

So fügen Sie einem vorhandenen Zertifizierungsstellenpool 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 Zertifizierungsstellenpools, für den Sie eine Richtlinie zur Zertifikatsausstellung 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 das 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: 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 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 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:

  1. Optional: Klicken Sie auf das Feld Bekannte Zertifikatserweiterungen und entfernen Sie im Menü die nicht erforderlichen Erweiterungen.
  2. Optional: Fügen Sie im Feld Benutzerdefinierte Erweiterungen die Objektkennungen für Erweiterungen hinzu, die in die vom Zertifizierungsstellenpool ausgestellten Zertifikate einbezogen werden 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.
Nutzung des Basisschlüssels 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ü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:

  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. Wählen Sie mithilfe der Kästchen aus, wie der 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 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:

  1. Optional: Klicken Sie auf die Ein/Aus-Schaltfläche, um die erweiterten Schlüsselverwendungen für die Zertifikate anzugeben, die der Zertifizierungsstellenpool 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 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:

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

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.

  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 für die Zertifikate, die vom CA-Pool ausgestellt 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 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.

  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 Feld „SubjectAltNames“ verworfen.
  2. 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:

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