Demander un certificat
Cette page explique comment créer une demande de certificat dans Certificate Authority Service.
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).
- Utilisez une clé privée ou publique générée automatiquement par le service CA.
- Utilisez une clé Cloud Key Management Service (Cloud KMS) existante.
Avant de commencer
Pour obtenir les autorisations nécessaires pour émettre des certificats, demandez à votre administrateur de vous attribuer le rôle IAM Demandeur de certificat de service CA (
roles/privateca.certificateRequester
) ou Gestionnaire de certificat de service CA (roles/privateca.certificateManager
).Pour en savoir plus sur les rôles IAM prédéfinis pour le service CA, consultez Contrôle des accès avec IAM.
Pour savoir comment attribuer un rôle IAM à un compte principal, consultez Attribuer un seul rôle.
Demander un certificat à l'aide d'une CSR
Pour obtenir un certificat, vous devez générer une CSR, que vous utiliserez ensuite pour demander le certificat.
Générer la CSR
Pour obtenir des instructions détaillées sur la génération d'une CSR à l'aide d'OpenSSL, consultez Générer une CSR avec OpenSSL. Vous pouvez également utiliser l'exemple de fichier de configuration suivant comme référence lorsque vous générez votre CSR.
Pour utiliser l'exemple de fichier de configuration, procédez comme suit :
Créez un fichier de configuration nommé
csr.cnf
à l'aide de la configuration suivante.cat << EOF > csr.cnf [req] distinguished_name = req_distinguished_name req_extensions = v3_req prompt = no [req_distinguished_name] CN = example.com [v3_req] keyUsage = critical, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = example.com DNS.2 = www.example.com EOF
Cet exemple génère une clé RSA de 2 048 bits (chiffrée par une phrase secrète) et une CSR correspondante contenant les éléments suivants :
- l'attribut
commonName
dans le nom distinctif de l'objet. - l'extension
subjectAlternativeName
- l'extension
keyUsage
(marquée comme critique) - l'extension
extendedKeyUsage
Modifiez les paramètres selon vos besoins. Pour utiliser le format de fichier de configuration
x509v3_config
afin de définir des extensions pour les certificats X.509 et les CSR, consultez la documentation OpenSSL.- l'attribut
Exécutez la commande
openssl
suivante pour générer une RDC et une clé privée correspondante :openssl req -newkey rsa:2048 -out csr.pem -keyout key.pem -config csr.cnf
Cette commande génère les fichiers suivants :
csr.pem
: votre CSR, prêt à être envoyé à une autorité de certificationkey.pem
: votre clé privée, que vous devez protéger
Utilisez le fichier
csr.pem
dans votre demande de certificat.
Envoyer une demande de certificat à l'aide de la CSR
Pour demander un certificat à l'aide du CSR, procédez comme suit :
Console
Accédez à la page Certificate Authority Service de la consoleGoogle Cloud .
Cliquez sur Demander un certificat.
Sélectionnez une région. La région doit être la même que celle du pool d'AC que vous prévoyez d'utiliser.
Sélectionnez un pool d'autorités de certification.
Facultatif : Sélectionnez une autorité de certification spécifique dans le pool d'autorités de certification. Notez que lorsque vous choisissez une autorité de certification spécifique pour l'émission de certificats, vous créez une dépendance vis-à-vis de cette autorité de certification, ce qui rend la rotation des autorités de certification plus difficile.
(Facultatif) Choisissez un modèle de certificat. Si vous utilisez un modèle de certificat, assurez-vous que les règles de ce modèle ne sont pas en conflit avec celles du pool d'AC sélectionné.
Cliquez sur Fournir une demande de signature de certificat (CSR), puis sur Suivant. Les détails du certificat s'affichent.
Facultatif : Pour remplacer le nom du certificat généré automatiquement, saisissez le nom personnalisé dans le champ Nom du certificat. Une fois le certificat créé, vous ne pouvez pas supprimer ni réutiliser son nom.
Facultatif : Pour choisir une période de validité personnalisée pour le certificat, saisissez la valeur dans le champ Valable pendant.
Copiez et collez votre CSR dans la zone CSR du certificat. Si vous souhaitez importer un fichier contenant la RDC, cliquez sur Parcourir, puis sélectionnez votre fichier.
Cliquez sur Générer un certificat.
Télécharger le certificat signé
- Pour afficher le certificat généré, cliquez sur Afficher le certificat, puis sur Afficher.
- Pour copier le certificat, cliquez sur
.crt
, cliquez sur Télécharger le certificat.
. Pour télécharger le certificat au format - Facultatif : Pour télécharger la chaîne de certificats, cliquez sur Télécharger la chaîne de certificats.
gcloud
gcloud privateca certificates create CERT_ID \
--issuer-pool POOL_ID \
--issuer-location ISSUER_LOCATION \
--csr CSR_FILENAME \
--cert-output-file CERT_OUTPUT_FILE \
--validity "P30D"
Remplacez les éléments suivants :
- CERT_ID : identifiant unique du certificat.
- POOL_ID : nom du pool d'autorités de certification.
- ISSUER_LOCATION : emplacement du certificat.
- CSR_FILENAME : fichier stockant la CSR encodée au format PEM.
- CERT_OUTPUT_FILE : chemin d'accès où le fichier de chaîne de certificats encodé au format PEM doit être écrit. La chaîne de certificats est classée de l'entité finale à la racine.
L'indicateur --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 en savoir plus sur la commande gcloud privateca certificates create
, consultez gcloud privateca certificates create.
Terraform
API REST
Générez une requête de signature de certificat (CSR) à l'aide de la méthode de votre choix, par exemple
openssl
.Voici un exemple de CSR encodé pour 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.
Accédez à la page Certificate Authority Service de la consoleGoogle Cloud .
Cliquez sur Demander un certificat.
Sélectionnez une région. La région doit être la même que celle du pool d'AC que vous prévoyez d'utiliser.
Sélectionnez un pool d'autorités de certification.
Cliquez sur Saisir les détails manuellement. Les détails du certificat s'affichent.
(Facultatif) Remplacez le nom du certificat généré automatiquement par un nom personnalisé unique.
Facultatif : Pour choisir une période de validité personnalisée pour le certificat, saisissez la valeur dans le champ Valable pendant.
Ajouter un nom de domaine
- Sous Ajouter un nom de domaine, saisissez un nom de domaine dans le champ Nom de domaine 1.
- Facultatif : Si vous souhaitez ajouter plusieurs noms de domaine, cliquez sur Ajouter un élément, puis saisissez un autre nom de domaine dans le champ Nom de domaine 2.
Utilisation étendue de la clé
Facultatif : Sous Utilisation étendue des clés, sélectionnez l'une des options suivantes en fonction de votre cas d'utilisation :
- TLS client : ces certificats vous permettent d'authentifier l'identité d'un demandeur.
- TLS du serveur : ces certificats vous permettent d'authentifier l'identité d'un serveur.
Cliquez sur Suivant.
Configurer la taille et l'algorithme de la clé
- Facultatif : Sous Configurer l'algorithme et le type de clé, sélectionnez la taille et l'algorithme de la clé de signature dans la liste. Si vous ignorez cette étape, une clé RSASSA-PSS de 2 048 bits avec un condensé SHA-256 sera utilisée. Pour savoir comment sélectionner une clé et un algorithme de signature, consultez Choisir un algorithme de clé.
- Cliquez sur Générer un certificat.
Télécharger le certificat signé
- Pour afficher le certificat généré, cliquez sur Afficher le certificat, puis sur Afficher.
- 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.
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 Intégrer la bibliothèque de cryptographie Pyca.
Pour créer un certificat, utilisez la commande gcloud
suivante :
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--issuer-location ISSUER_LOCATION \
--generate-key \
--key-output-file KEY_FILENAME \
--cert-output-file CERT_OUTPUT_FILE \
--dns-san "DNS_NAME" \
--use-preset-profile "CERTIFICATE_PROFILE"
Remplacez les éléments suivants :
- POOL_ID : nom du pool d'autorités de certification.
- ISSUER_LOCATION : emplacement du certificat.
- KEY_FILENAME : chemin d'accès au fichier de clé privée généré.
- CERT_OUTPUT_FILE : chemin d'accès où le fichier de chaîne de certificats encodé au format PEM doit être écrit. La chaîne de certificats est ordonnée de l'entité finale à la racine.
- DNS_NAME : un ou plusieurs autres noms d'objet (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 clé privée RSA-2048 sur votre machine.
Vous pouvez également utiliser n'importe quelle combinaison des indicateurs suivants :
--dns-san
: vous permet de transmettre un ou plusieurs SAN DNS séparés par une virgule.--ip-san
: vous permet de transmettre un ou plusieurs SAN IP séparés par une virgule.--uri-san
: vous permet de transmettre un ou plusieurs SAN d'URI séparés par une virgule.--subject
: vous permet de transmettre un nom X.501 du sujet du certificat.
Pour en savoir plus sur la commande gcloud privateca certificates create
, consultez gcloud privateca certificates 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
Vous ne pouvez utiliser Google Cloud CLI que pour demander des certificats à l'aide d'une clé Cloud KMS.
gcloud
Pour utiliser une clé Cloud KMS afin de créer un certificat TLS de serveur d'entité finale, exécutez la commande suivante :
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--issuer-location ISSUER_LOCATION \
--kms-key-version projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/KEY_VERSION \
--cert-output-file CERT_OUTPUT_FILE \
--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.
- ISSUER_LOCATION : emplacement du certificat.
- 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_OUTPUT_FILE : chemin d'accès au fichier de chaîne de certificats 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.
Émettre un certificat à partir d'une autorité de certification spécifique dans un pool d'autorités de certification
Cette section explique comment émettre des certificats à partir d'une CA spécifique dans un pool de CA.
Console
Accédez à la page Certificate Authority Service de la consoleGoogle Cloud .
Cliquez sur Demander un certificat.
Sélectionnez une région. La région doit être la même que celle du pool d'AC que vous prévoyez d'utiliser.
Sélectionnez un pool d'autorités de certification.
Pour choisir une autorité de certification, cliquez sur Utiliser une autorité de certification spécifique à partir de ce pool d'autorités de certification, puis sélectionnez une autorité de certification dans la liste.
Sélectionnez d'autres paramètres comme vous l'avez fait dans la section Demander un certificat à l'aide d'une clé générée automatiquement ou Demander un certificat à l'aide d'une CSR.
gcloud
Pour cibler une autorité de certification spécifique dans le pool d'autorités de certification pour l'émission de certificats, ajoutez l'indicateur --ca
avec le CA_ID de l'autorité de certification qui doit émettre le certificat.
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--issuer-location ISSUER_LOCATION \
--ca CA_ID \
--generate-key \
--key-output-file KEY_FILENAME \
--cert-output-file CERT_OUTPUT_FILE \
--dns-san "DNS_NAME" \
--use-preset-profile "leaf_server_tls"
Terraform
Demander un certificat en mode validation
Demander un certificat en mode validation permet de créer un certificat de test non signé. Ce certificat de test n'est pas encodé au format PEM et n'entraîne aucun frais. Bien que vous ne puissiez pas télécharger le certificat, la description hypothétique du certificat vous permet de confirmer que vous pouvez émettre un certificat signé avec les paramètres de votre choix.
Pour demander un certificat en mode validation, procédez comme suit :
Console
Accédez à la page Certificate Authority Service de la consoleGoogle Cloud .
Cliquez sur Demander un certificat.
Sélectionnez Utiliser le mode validation pour une description de certificat fictif au lieu d'un certificat signé.
Suivez la même procédure que pour demander un certificat signé.
É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 les certificats à l'aide de Google Cloud CLI.