Vordefinierte Zertifikatsvorlagen

Certificate Authority Service bietet vordefinierte Zertifikatsvorlagen, um die Zertifikatsausstellung zu optimieren und zu sichern. Durch die Bereitstellung vorkonfigurierter Sätze von X.509-Parametern für gängige Anwendungsfälle vereinfachen diese vorgefertigten Vorlagen die Zertifikatsverwaltung, verringern das Risiko menschlicher Fehler und setzen Sicherheits-Best Practices durch. Jede Vorlage ist für einen bestimmten Anwendungsfall konzipiert, damit Zertifikate mit den richtigen Parametern für den vorgesehenen Zweck ausgestellt werden. Dabei werden auch alle Einschränkungen der ausstellenden Zertifizierungsstelle berücksichtigt.

Dieses Dokument richtet sich an Personen in der Gruppe der Anwendungsoperatoren, z. B. Anwendungsentwickler oder Data Scientists, die den Zertifikatslebenszyklus in ihrem Projekt verwalten. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.

Zertifikatsvorlage anwenden

Geben Sie den Namen der Vorlage im Feld certificateTemplate Ihrer CertificateRequest-Ressource an, um eine Vorlage anzuwenden. CA Service wendet die Parameter der ausgewählten Vorlage auf das ausgestellte Zertifikat an.

Eine detaillierte Anleitung dazu, wie Sie die CertificateRequest-Ressource strukturieren und das Feld certificateTemplate einfügen, finden Sie unter Zertifikat anfordern.

Typen von Zertifikatsvorlagen

Die folgenden vordefinierten Zertifikatsvorlagen sind verfügbar. Jede Vorlage ist für einen bestimmten Anwendungsfall konzipiert und vorkonfiguriert die X.509-Parameter, die von der Vorlage erzwungen werden.

In den Vorlagenbeschreibungen unten werden alle Parameter, die nicht explizit von der Vorlage festgelegt werden, aus der CertificateRequest-Ressource übernommen, unabhängig davon, ob sie in einer Zertifikatsignierungsanfrage (Certificate Signing Request, CSR) oder in von Ihnen definierten Feldern angegeben werden.

Standard

Vorlagenname: default

Diese Vorlage wird automatisch verwendet, wenn Sie in Ihrer CertificateRequest-Ressource keine Zertifikatvorlage angeben. Das ausgestellte Zertifikat übernimmt die Einstellungen Key usage und Extended key usage aus dem Profil der ausstellenden CA und setzt Basic constraints auf CA:FALSE. Dadurch wird verhindert, dass das Zertifikat zum Signieren anderer Zertifikate verwendet wird.

X509-Parameter Wert
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Basiseinschränkungen CA:FALSE
Alternativer Name des Inhabers [Passthrough from CSR]
Schlüsselverwendung [Schlüsselverwendung in der Zertifizierungsstelle festgelegt]
Erweiterte Schlüsselverwendung [Erweiterte Schlüsselverwendung in CA festgelegt]

Client-TLS-Zertifikate

Vorlagenname: endEntityClientAuthCertificate

Mit dieser Vorlage werden Endentitätszertifikate für die clientseitige TLS-Authentifizierung ausgestellt. Im ausgestellten Zertifikat wird Extended key usage auf TLS web client authentication und Basic constraints auf CA:FALSE festgelegt. Dadurch kann das Zertifikat nicht zum Signieren anderer Zertifikate verwendet werden.

X509-Parameter Wert
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Basiseinschränkungen CA:FALSE
Alternativer Name des Inhabers [Passthrough from CSR]
Schlüsselverwendung Kritisch, digitale Signatur, Schlüsselverschlüsselung
Erweiterte Schlüsselverwendung TLS-Webclient-Authentifizierung

TLS-Serverzertifikate

Vorlagenname: endEntityServerAuthCertificate

Mit dieser Vorlage werden Endentitätszertifikate für die serverseitige TLS-Authentifizierung ausgestellt, die sich ideal für die Verwendung mit Webservern eignen. Im ausgestellten Zertifikat wird Extended key usage auf TLS web server authentication und Basic constraints auf CA:FALSE festgelegt. Dadurch kann das Zertifikat nicht zum Signieren anderer Zertifikate verwendet werden.

X509-Parameter Wert
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Basiseinschränkungen CA:FALSE
Alternativer Name des Inhabers [Passthrough from CSR]
Schlüsselverwendung Kritisch, digitale Signatur, Schlüsselverschlüsselung
Erweiterte Schlüsselverwendung TLS-Webserverauthentifizierung

Untergeordnete CA-Zertifikate (PathLen 0)

Vorlagenname: blankSubCACertificate_PathLen0_CSRPassthrough

Mit dieser Vorlage werden untergeordnete CA-Zertifikate mit einer Pfadlängenbeschränkung von 0 ausgestellt. Damit kann das Zertifikat Endentitätzertifikate, aber keine anderen CA-Zertifikate signieren.

X509-Parameter Wert
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Basiseinschränkungen CA:TRUE, pathlen: 0
Alternativer Name des Inhabers [Passthrough from CSR]
Schlüsselverwendung [Schlüsselverwendung in CSR festgelegt]
Erweiterte Schlüsselverwendung [Erweiterte Schlüsselverwendung im CSR festgelegt]

Untergeordnete CA-Zertifikate (PathLen 1)

Vorlagenname: blankSubCACertificate_PathLen1_CSRPassthrough

Mit dieser Vorlage werden untergeordnete CA-Zertifikate mit einer Pfadlängenbeschränkung von 1 ausgestellt. Das Zertifikat kann also Endentitätzertifikate sowie andere untergeordnete CA-Zertifikate mit einer Pfadlänge von 0 signieren.

X509-Parameter Wert
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Basiseinschränkungen CA:TRUE, pathlen: 1
Alternativer Name des Inhabers [Passthrough from CSR]
Schlüsselverwendung [Schlüsselverwendung in CSR festgelegt]
Erweiterte Schlüsselverwendung [Erweiterte Schlüsselverwendung im CSR festgelegt]

Konflikterkennung

Jede Zertifizierungsstelle hat ein Profil, in dem die Arten von Zertifikaten definiert sind, die sie ausstellen darf. Eine CA kann beispielsweise darauf beschränkt sein, nur Clientauthentifizierungszertifikate auszustellen. Das Profil der Zertifizierungsstelle wird beim Erstellen der Zertifizierungsstelle im Abschnitt certificateProfile der CertificateAuthority-Ressource konfiguriert, wie in Root-Zertifizierungsstelle erstellen und Untergeordnete Zertifizierungsstelle erstellen beschrieben.

Wenn Sie ein Zertifikat mit einer vordefinierten Vorlage anfordern, werden die Parameter der Vorlage vom CA-Dienst anhand der Konfiguration der ausstellenden Zertifizierungsstelle validiert. Damit die in der ausgewählten Vorlage definierten X.509-Parameter gültig sind, müssen sie eine Teilmenge der Parameter sein, die von der ausstellenden Zertifizierungsstelle gemäß ihrer certificateProfile zulässig sind. Ein Konflikt tritt auf, wenn in der Vorlage Attribute oder Berechtigungen angefordert werden, die die Zertifizierungsstelle nicht gewähren darf. Eine Vorlage kann beispielsweise keine Extended key usage (EKU) von serverAuth anfordern, wenn die ausstellende CA nur zum Gewähren von clientAuth autorisiert ist.

Wenn CA Service einen solchen Konflikt erkennt, schlägt CertificateRequest fehl. Sie können den Status der CertificateRequest-Ressource prüfen, um den Grund für den Fehler zu ermitteln.

Beispiel

Im folgenden Szenario ist eine Zertifizierungsstelle namens client-certs-ca so konfiguriert, dass sie Zertifikate nur für die Clientauthentifizierung ausstellt. Im certificateProfile wird angegeben, dass nur TLS web client authentication als Extended key usage zulässig ist.

Sie reichen das Folgende CertificateRequest ein, um ein Zertifikat für einen Server mit der Vorlage endEntityServerAuthCertificate auszustellen:

  apiVersion: pki.security.gdc.goog/v1
  kind: CertificateRequest
  metadata:
    name: server-cert-req
    namespace: my-project
  spec:
    certificateAuthorityRef:
      name: client-certs-ca
      namespace: my-project
    csr: "..."
    certificateTemplate: endEntityServerAuthCertificate
    signedCertificateSecret: server-cert-secret

Diese Anfrage schlägt aus folgenden Gründen fehl:

  • Für die Vorlage endEntityServerAuthCertificate ist die EKU TLS web server authentication erforderlich.
  • Die ausstellende CA, client-certs-ca, hat eine certificateProfile, die nur die EKU TLS web client authentication zulässt.

Da die von der Vorlage erforderliche EKU nicht in der Liste der vom Profil der Zertifizierungsstelle zulässigen EKUs enthalten ist, sind die Anforderungen der Vorlage keine Teilmenge der zulässigen Parameter der Zertifizierungsstelle. Die Anfrage wird daher abgelehnt.