Certificate Authority Service fournit des modèles de certificats prédéfinis pour simplifier et sécuriser le processus d'émission de certificats. En proposant des ensembles préconfigurés de paramètres X.509 pour des cas d'utilisation courants, ces modèles prêts à l'emploi simplifient la gestion des certificats, réduisent le risque d'erreurs humaines et appliquent les bonnes pratiques de sécurité. Chaque modèle est conçu pour un cas d'utilisation spécifique afin de s'assurer que les certificats sont émis avec les paramètres appropriés à leur objectif, tout en respectant les limites définies par l'autorité de certification émettrice.
Ce document est destiné aux audiences du groupe d'opérateurs d'applications, telles que les développeurs d'applications ou les data scientists, qui gèrent les cycles de vie des certificats dans leur projet. Pour en savoir plus, consultez la documentation sur les audiences pour GDC sous air gap.
Appliquer un modèle de certificat
Pour appliquer un modèle, spécifiez son nom dans le champ certificateTemplate de votre ressource CertificateRequest. CA Service applique les paramètres du modèle choisi au certificat émis.
Pour obtenir des instructions détaillées sur la structure de la ressource CertificateRequest et
l'inclusion du champ certificateTemplate, consultez
Demander un certificat.
Types de modèles de certificats
Les modèles de certificats prédéfinis suivants sont disponibles. Chaque modèle est conçu pour un cas d'utilisation spécifique et préconfigure les paramètres X.509 qu'il applique.
Dans les descriptions de modèles ci-dessous, tous les paramètres qui ne sont pas explicitement définis par le modèle sont extraits de la ressource CertificateRequest, qu'ils soient fournis dans une demande de signature de certificat ou dans des champs que vous définissez.
Par défaut
Nom du modèle : default
Ce modèle est utilisé automatiquement si vous ne spécifiez pas de modèle de certificat dans votre ressource CertificateRequest. Le certificat émis hérite des paramètres Key
usage et Extended key usage du profil de l'autorité de certification émettrice, et définit
Basic constraints sur CA:FALSE, ce qui empêche l'utilisation du certificat pour
signer d'autres certificats.
| Paramètre X509 | Valeur |
|---|---|
| RawSubject | [SubjectOverride défini par l'utilisateur ou Passthrough à partir de la demande de signature de certificat] |
| Contraintes de base | CA:FALSE |
| Autre nom de l'objet | [Passthrough à partir de la demande de signature de certificat] |
| Utilisation de la clé | [Utilisation de la clé définie dans l'autorité de certification] |
| Utilisation étendue de la clé | [Utilisation étendue de la clé définie dans l'autorité de certification] |
Certificats TLS du client
Nom du modèle : endEntityClientAuthCertificate
Ce modèle émet des certificats d'entité finale pour l'authentification TLS côté client.
Le certificat émis définit Extended key usage sur TLS web client
authentication et Basic constraints sur CA:FALSE, ce qui empêche l'utilisation du
certificat pour signer d'autres certificats.
| Paramètre X509 | Valeur |
|---|---|
| RawSubject | [SubjectOverride défini par l'utilisateur ou Passthrough à partir de la demande de signature de certificat] |
| Contraintes de base | CA:FALSE |
| Autre nom de l'objet | [Passthrough à partir de la demande de signature de certificat] |
| Utilisation de la clé | Critique, signature numérique, chiffrement de clé |
| Utilisation étendue de la clé | Authentification du client Web TLS |
Certificats TLS du serveur
Nom du modèle : endEntityServerAuthCertificate
Ce modèle émet des certificats d'entité finale pour l'authentification TLS côté serveur, ce qui est idéal pour une utilisation avec des serveurs Web. Le certificat émis définit Extended
key usage sur TLS web server authentication, et Basic constraints sur
CA:FALSE, ce qui empêche l'utilisation du certificat pour signer d'autres
certificats.
| Paramètre X509 | Valeur |
|---|---|
| RawSubject | [SubjectOverride défini par l'utilisateur ou Passthrough à partir de la demande de signature de certificat] |
| Contraintes de base | CA:FALSE |
| Autre nom de l'objet | [Passthrough à partir de la demande de signature de certificat] |
| Utilisation de la clé | Critique, signature numérique, chiffrement de clé |
| Utilisation étendue de la clé | Authentification du serveur Web TLS |
Certificats CA subordonnés (PathLen 0)
Nom du modèle : blankSubCACertificate_PathLen0_CSRPassthrough
Ce modèle émet des certificats CA subordonnés avec une contrainte de longueur de chemin de 0, ce qui permet au certificat de signer des certificats d'entité finale, mais pas d'autres certificats CA.
| Paramètre X509 | Valeur |
|---|---|
| RawSubject | [SubjectOverride défini par l'utilisateur ou Passthrough à partir de la demande de signature de certificat] |
| Contraintes de base | CA:TRUE, pathlen: 0 |
| Autre nom de l'objet | [Passthrough à partir de la demande de signature de certificat] |
| Utilisation de la clé | [Utilisation de la clé définie dans la demande de signature de certificat] |
| Utilisation étendue de la clé | [Utilisation étendue de la clé définie dans la demande de signature de certificat] |
Certificats CA subordonnés (PathLen 1)
Nom du modèle : blankSubCACertificate_PathLen1_CSRPassthrough
Ce modèle émet des certificats CA subordonnés avec une contrainte de longueur de chemin de 1, ce qui permet au certificat de signer des certificats d'entité finale ainsi que d'autres certificats CA subordonnés dont la longueur de chemin est de 0.
| Paramètre X509 | Valeur |
|---|---|
| RawSubject | [SubjectOverride défini par l'utilisateur ou Passthrough à partir de la demande de signature de certificat] |
| Contraintes de base | CA:TRUE, pathlen: 1 |
| Autre nom de l'objet | [Passthrough à partir de la demande de signature de certificat] |
| Utilisation de la clé | [Utilisation de la clé définie dans la demande de signature de certificat] |
| Utilisation étendue de la clé | [Utilisation étendue de la clé définie dans la demande de signature de certificat] |
Détection de conflit
Chaque autorité de certification possède un profil qui définit les types de certificats qu'elle est autorisée à émettre. Par exemple, une autorité de certification peut être limitée à l'émission de certificats d'authentification client. Le profil de l'autorité de certification est configuré dans la
certificateProfile section de la CertificateAuthority ressource lors de
la création de l'autorité de certification, comme décrit dans
Créer une autorité de certification racine
et
Créer une autorité de certification subordonnée.
Lorsque vous demandez un certificat à l'aide d'un modèle prédéfini, CA Service valide les paramètres du modèle par rapport à la configuration de l'autorité de certification émettrice. Pour être valides, les paramètres X.509 définis dans le modèle choisi doivent être un sous-ensemble de ceux autorisés par l'autorité de certification émettrice conformément à son certificateProfile. Un conflit se produit si le modèle demande des attributs ou des autorisations que l'autorité de certification n'est pas autorisée à accorder. Par exemple, un modèle ne peut pas demander une Extended key usage (EKU) de serverAuth si l'autorité de certification émettrice n'est autorisée à accorder que clientAuth.
Si CA Service détecte un tel conflit, la CertificateRequest échoue. Vous pouvez inspecter l'état de la ressource CertificateRequest pour comprendre la raison de l'échec.
Exemple
Dans le scénario suivant, une autorité de certification nommée client-certs-ca est configurée pour n'émettre des certificats que pour l'authentification client. Son certificateProfile spécifie que la seule Extended key usage autorisée est TLS web client authentication.
Vous envoyez la CertificateRequest suivante pour émettre un certificat pour un serveur, à l'aide du modèle endEntityServerAuthCertificate :
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
Cette requête échoue pour les raisons suivantes :
- Le modèle
endEntityServerAuthCertificatenécessite l'EKUTLS web server authentication. - L'autorité de certification émettrice,
client-certs-ca, possède uncertificateProfilequi n'autorise que l'EKUTLS web client authentication.
Étant donné que l'EKU requise par le modèle n'est pas incluse dans la liste des EKU autorisées par le profil de l'autorité de certification, les exigences du modèle ne sont pas un sous-ensemble des paramètres autorisés de l'autorité de certification. La requête est donc refusée.