Demander un certificat et afficher les certificats émis
Cet article explique comment demander un certificat auprès de Certificate Authority Service et afficher les certificats émis.
Avant de commencer
Assurez-vous de disposer du rôle IAM "Demandeur de certificats du service CA (roles/privateca.certificateRequester
) ou "Gestionnaire de certificats du service CA" (roles/privateca.certificateManager
). Pour en savoir plus sur les rôles IAM prédéfinis pour le service de CA, consultez la page Contrôle des accès avec IAM.
Pour en savoir plus sur l'attribution d'un rôle IAM à un compte principal, consultez Attribuer un seul rôle.
Présentation
Vous pouvez demander un certificat à l'aide des méthodes suivantes:
- Générez votre propre clé privée ou publique, puis envoyez une demande de signature de certificat (CSR).
- Demandez à CA Service de créer une clé privée ou publique.
- Utiliser une clé Cloud Key Management Service (Cloud KMS) existante
Demander un certificat à l'aide d'une requête de signature de certificat
Avant de continuer, vous devez générer une requête de signature de certificat. Après avoir généré une requête de signature de certificat, procédez comme suit:
Console
Accédez à la page Certificate Authority Service de la console Google Cloud.
Cliquez sur l'onglet Gestionnaire de CA.
Cliquez sur le nom de l'autorité de certification depuis laquelle vous souhaitez délivrer.
Au bas de la page "Détails de l'autorité de certification", cliquez sur Demander un certificat.
Facultatif: Si vous souhaitez utiliser un modèle de certificat, cliquez sur , sélectionnez un modèle dans la liste, puis cliquez sur Enregistrer.
Cliquez sur Fournir la requête de signature de certificat.
Facultatif: Pour écraser le nom du certificat généré automatiquement, saisissez le nom personnalisé dans le champ Nom du certificat.
Facultatif: Pour choisir une période de validité personnalisée pour le certificat, saisissez la valeur dans le champ Valide pour.
Copiez et collez votre requête de signature de certificat dans la zone CSR du certificat. Pour importer la requête de signature de certificat, cliquez sur Parcourir.
Cliquez sur Suivant.
Télécharger le certificat signé
- Pour copier le certificat, cliquez sur
.crt
, cliquez sur Télécharger le certificat.
.
Pour télécharger le certificat sous la forme d'un fichier - Facultatif: Pour télécharger la chaîne de certificats, cliquez sur Télécharger la chaîne de certificats.
- Cliquez sur OK.
gcloud
gcloud privateca certificates create CERT_ID \
--issuer-pool POOL_ID \
--csr CSR_FILENAME \
--cert-output-file CERT_FILENAME \
--validity "P30D"
Remplacez les éléments suivants :
- CERT_ID: identifiant unique du certificat.
- POOL_ID: nom du pool d'autorités de certification.
- CSR_FILENAME: fichier qui stocke la requête de signature de certificat encodée au format PEM.
L'option --validity
définit la durée de validité du certificat. Il s'agit d'un indicateur facultatif dont la valeur par défaut est de 30 jours.
Pour plus d'informations sur la commande gcloud privateca certificates create
, consultez la page gcloud privateca certificats create.
Terraform
API REST
Générez une demande de signature de certificat (CSR) à l'aide de la méthode de votre choix, par exemple
openssl
.Voici un exemple de requête de signature de certificat encodée pour le format JSON.
-----BEGIN CERTIFICATE REQUEST-----\nMIIChTCCAW0CAQAwQDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQ8wDQYDVQQK\nDAZKb29uaXgxEzARBgNVBAMMCmpvb25peC5uZXQwggEiMA0GCSqGSIb3DQEBAQUA\nA4IBDwAwggEKAoIBAQCnyy+5vcRQUBPqAse3ojmWjyUvhcJK6eLRXpp0teEUF5kg\nHb2ov8gYXb9sSim5fnvs09dGYDKibSrL4Siy7lA/NzMzWtKwyQQeLIQq/cLUJVcd\ndItJ0VRcqr+UPkTCii2vrdcocNDChHM1J8chDdl6DkpYieSTqZwlPcWlQBGAINmT\nT3Q0ZarIVM5l74j13WPuToGrhbVOIZXWxWqJjlHbBA8B/VKtSRCzM1qG60y8Pu2f\n6c78Dfg8+CGRzGwnz8aFS0Yf9czT9luNHSadS/RHjvE9FPZCsinz+6mJlXRcphi1\nKaHsDbstUAhse1h5E9Biyr9SFYRHxY7qRv9aSJ/dAgMBAAGgADANBgkqhkiG9w0B\nAQsFAAOCAQEAZz+I9ff1Rf3lTewXRUpA7nr5HVO1ojCR93Pf27tI/hvNH7z7GwnS\noScoJlClxeRqABOCnfmVoRChullb/KmER4BZ/lF0GQpEtbqbjgjkEDpVlBKCb0+L\nHE9psplIz6H9nfFS3Ouoiodk902vrMEh0LyDYNQuqFoyCZuuepUlK3NmtmkexlgT\n0pJg/5FV0iaQ+GiFXSZhTC3drfiM/wDnXGiqpbW9WmebSij5O+3BNYXKBUgqmT3r\nbryFydNq4qSOIbnN/MNb4UoKno3ve7mnGk9lIDf9UMPvhl+bT7C3OLQLGadJroME\npYnKLoZUvRwEdtZpbNL9QhCAm2QiJ6w+6g==\n-----END CERTIFICATE REQUEST-----
Demandez un certificat.
Méthode HTTP et URL :
POST https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates?certificate_id=CERTIFICATE_ID
Corps JSON de la requête :
{ "lifetime": { "seconds": 3600, "nanos": 0 }, "pem_csr": "PEM_CSR" }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/project-id/locations/location/certificateAuthorities/ca-id/certificates/certificate-id", "pemCertificate": "-----BEGIN CERTIFICATE-----...", "certificateDescription": {...} }
Demander un certificat à l'aide d'une clé générée automatiquement
Console
Vous pouvez utiliser la console Google Cloud pour générer des certificats TLS client ou serveur.
Dans la console Google Cloud, accédez à la page Certificate Authority Service.
Cliquez sur l'onglet Gestionnaire de CA.
Cliquez sur le nom de l'autorité de certification depuis laquelle vous souhaitez délivrer.
Au bas de la page d'informations de l'autorité de certification, cliquez sur Demander un certificat.
Facultatif: Si vous souhaitez utiliser un modèle de certificat, cliquez sur , sélectionnez un modèle dans la liste, puis cliquez sur Enregistrer.
Cliquez sur Saisir les détails.
Facultatif: Remplacez le nom du certificat généré automatiquement par un nom personnalisé et unique.
Facultatif: Pour choisir une période de validité personnalisée pour le certificat, saisissez la valeur dans le champ Valide pour.
Ajouter un nom de domaine
- Sous Add domain name (Ajouter un nom de domaine), saisissez un nom de domaine dans le champ Domain name 1 (Nom de domaine 1).
- Facultatif: si vous souhaitez ajouter plusieurs noms de domaine, cliquez sur Add Item (Ajouter un élément), puis saisissez un autre nom de domaine dans le champ Domain name 2 (Nom de domaine 2).
Utilisation étendue des clés
Facultatif: Sous Utilisation étendue des clés, sélectionnez l'une des options suivantes en fonction de votre cas d'utilisation:
- TLS serveur: ces certificats vous permettent d'authentifier l'identité d'un serveur.
- TLS client: ces certificats vous permettent d'authentifier l'identité d'un demandeur.
Cliquez sur Suivant.
Configurer l'algorithme et la taille de la clé
- Facultatif: Sous Configurer la taille de la clé et l'algorithme, sélectionnez l'algorithme et la taille de la clé de signature dans la liste. Si vous ignorez cette étape, une clé RSAASSA-PSS de 2 048 bits avec un condensé SHA 256 est utilisée. Pour en savoir plus sur la sélection d'une clé et d'un algorithme de signature, consultez Choisir un algorithme de clé.
- Cliquez sur Continuer.
Télécharger le certificat signé
- Facultatif: Pour télécharger la chaîne de certificats encodée au format PEM, cliquez sur Télécharger la chaîne de certificats.
Facultatif: Pour télécharger la clé privée associée encodée au format PEM, cliquez sur Télécharger la clé privée.
Cliquez sur OK.
gcloud
Pour utiliser la fonctionnalité de clé générée automatiquement, vous devez installer la bibliothèque Python Cryptographic Authority (PyCA). Pour obtenir des instructions sur l'installation de la bibliothèque de cryptographie Pyca, consultez l'article Inclure la bibliothèque de cryptographie Pyca.
Pour créer un certificat, exécutez la commande gcloud
suivante:
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--generate-key \
--key-output-file KEY_FILENAME \
--cert-output-file CERT_FILENAME \
--dns-san "DNS_NAME" \
--use-preset-profile "CERTIFICATE_PROFILE"
Remplacez les éléments suivants :
- POOL_ID: nom du pool d'autorités de certification.
- KEY_FILENAME: chemin d'accès où le fichier de clé privée généré doit être écrit.
- CERT_FILENAME: chemin d'accès où le fichier de chaîne de certificat encodé au format PEM doit être écrit. La chaîne de certificats est triée de l'entité finale à la racine.
- DNS_NAME: un ou plusieurs noms d'objet alternatifs (SAN) DNS séparés par une virgule.
- CERTIFICATE_PROFILE: identifiant unique du profil de certificat.
Par exemple, utilisez
leaf_server_tls
pour le protocole TLS du serveur d'entité finale.
La commande gcloud
mentionne les options suivantes:
--generate-key
: génère une nouvelle clé privée RSA-2048 sur votre machine.
Vous pouvez également utiliser n'importe quelle combinaison des options suivantes:
--dns-san
: permet de transmettre un ou plusieurs SAN DNS séparés par une virgule.--ip-san
: permet de transmettre un ou plusieurs SAN IP séparés par une virgule.--uri-san
: permet de transmettre un ou plusieurs SAN d'URI séparés par une virgule.--subject
: permet de transmettre un nom X.501 du sujet du certificat.
Pour plus d'informations sur la commande gcloud privateca certificates create
, consultez la page gcloud privateca certificats create.
Go
Pour vous authentifier auprès du service CA, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour vous authentifier auprès du service CA, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès du service CA, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Demander un certificat à l'aide d'une clé Cloud KMS existante
Pour créer un certificat TLS de serveur d'entités finales à l'aide d'une clé Cloud KMS, exécutez la commande suivante:
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--kms-key-version projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/KEY_VERSION \
--cert-output-file CERT_FILENAME \
--dns-san "DNS_NAME" \
--use-preset-profile "leaf_server_tls"
Remplacez les éléments suivants :
- POOL_ID: nom du pool d'autorités de certification.
- PROJECT_ID : ID du projet
- LOCATION_ID: emplacement du trousseau de clés
- KEY_RING: nom du trousseau de clés où se trouve la clé.
- KEY : nom de la clé.
- KEY_VERSION: version de la clé.
- CERT_FILENAME: chemin d'accès au fichier de chaîne de certificat encodé au format PEM. Le fichier de chaîne de certificats est classé de l'entité finale à la racine.
- DNS_NAME: SAN DNS séparés par une virgule.
Effectuer des opérations courantes avec des certificats
Cette section explique comment effectuer certaines opérations courantes à l'aide de certificats.
Émettre un certificat à partir d'une autorité de certification spécifique dans un pool d'autorités de certification
gcloud
Pour cibler une autorité de certification spécifique dans le pool d'autorités de certification pour l'émission du certificat, ajoutez l'option --ca
avec l'élément CA_ID de l'autorité de certification qui doit émettre le certificat.
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--ca CA_ID \
--generate-key \
--key-output-file KEY_FILENAME \
--cert-output-file CERT_FILENAME \
--dns-san "DNS_NAME" \
--use-preset-profile "leaf_server_tls"
Console
La console Google Cloud ne permet l'émission de certificats qu'à partir d'une autorité de certification particulière. Suivez les instructions de la section Demander un certificat à l'aide d'une clé générée automatiquement ou Demander un certificat à l'aide d'une requête de signature de certificat pour choisir l'autorité de certification qui doit émettre le certificat.
Terraform
Afficher les certificats émis
Console
Dans la console Google Cloud, accédez à la page Certificate Authority Service.
Cliquez sur l'onglet Gestionnaire de CA.
Sur la page Autorités de certification, cliquez sur le nom de l'autorité de certification.
Au bas de la page de détails Autorité de certification, cliquez sur Afficher les certificats émis pour afficher la liste des certificats émis par l'autorité de certification.
Vous pouvez consulter les certificats sur la page Tous les certificats. Ces détails incluent l'état du certificat, l'autorité de certification émettrice, le pool d'autorités de certification qui contient l'autorité de certification, la date d'expiration du certificat, etc.
gcloud
Pour répertorier tous les certificats émis par une autorité de certification particulière dans un pool d'autorités de certification, utilisez la commande gcloud
suivante:
gcloud privateca certificates list --issuer-pool ISSUER_POOL --ca CA_NAME
Pour plus d'informations sur la commande gcloud privateca certificates list
, consultez la section gcloud privateca certificats list.
Pour répertorier tous les certificats de toutes les autorités de certification dans un emplacement donné, utilisez la commande gcloud
suivante:
gcloud privateca certificates list --location LOCATION
Go
Pour vous authentifier auprès du service CA, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour vous authentifier auprès du service CA, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès du service CA, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Afficher les détails d'un seul certificat
Console
Dans la console Google Cloud, accédez à la page Certificate Authority Service.
Sélectionnez votre autorité de certification cible dans l'onglet Gestionnaire de CA.
Cliquez sur le nom de l'autorité de certification.
Au bas de la page Autorité de certification, cliquez sur Afficher les certificats émis pour consulter la liste des certificats émis.
Cliquez sur
dans la colonne Actions du certificat que vous souhaitez télécharger.Sous Télécharger, cliquez sur Certificat. Vous pouvez télécharger la chaîne de certificats en cliquant sur Chaîne de certificats.
gcloud
Pour afficher la description complète d'un certificat, exécutez la commande suivante:
gcloud privateca certificates describe CERT_NAME \
--issuer-pool POOL_ID
Pour plus d'informations sur la commande gcloud privateca certificates describe
, consultez la page gcloud privateca certificate describe.
Pour exporter la chaîne de certificats X.509 encodée au format PEM et vers un fichier, exécutez la commande suivante:
gcloud privateca certificates export CERT_NAME \
--issuer-pool POOL_ID \
--include-chain \
--output-file certificate-file
Pour plus d'informations sur la commande gcloud privateca certificates export
, consultez la section gcloud privateca certificate export.
Preuve de possession des certificats
La preuve de possession de la clé privée permet de s'assurer que le demandeur d'un certificat détient la clé privée correspondant à ce certificat. Le service CA vérifie la preuve de possession uniquement si le demandeur fournit une requête de signature de certificat PKCS #10 conformément au document RFC 2986. Pour les autres formes de demandes de certificat, telles que les demandes par CertificateConfig, la preuve de possession n'est pas appliquée.
Il est de la responsabilité des applications clientes qui acceptent les certificats de vérifier si le titulaire du certificat possède la clé privée de ce certificat. Mettre en place des vérifications de preuve de possession lors de l'émission du certificat constitue une forme de défense en profondeur visant à protéger les clients en cas de comportement défaillant. L’existence de ces clients, que l’autorité de certification vérifie ou non la preuve de possession, pourrait constituer une faille de sécurité.
Étapes suivantes
- En savoir plus sur les profils de certificat
- Découvrez comment révoquer des certificats.
- Découvrez comment trier et filtrer les certificats.
- Découvrez comment gérer des certificats à l'aide de la Google Cloud CLI.