Déployer un certificat régional géré par Google avec Certificate Authority Service


Ce tutoriel explique comment utiliser le gestionnaire de certificats pour déployer un certificat régional géré par Google avec CA Service sur un équilibreur de charge d'application externe régional ou sur un équilibreur de charge d'application interne régional.

Objectifs

Ce guide vous explique comment effectuer les tâches suivantes :

  • Créez un certificat géré par Google avec CA Service à l'aide du gestionnaire de certificats.
  • Déployez le certificat sur un équilibreur de charge compatible à l'aide d'un proxy HTTPS cible.

Pour en savoir plus sur le processus de déploiement de certificats, consultez la section Présentation du déploiement.

Avant de commencer

  1. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  2. Assurez-vous de disposer des rôles suivants pour effectuer les tâches de ce tutoriel:

    • Propriétaire du gestionnaire de certificats: nécessaire pour créer et gérer les ressources du gestionnaire de certificats.
    • Administrateur de l'équilibreur de charge Compute: requis pour créer et gérer un proxy HTTPS cible.
    • Administrateur du service CA: nécessaire pour effectuer des actions au sein du service CA.

    Pour en savoir plus, consultez les ressources suivantes :

  3. Activer l'API Certificate Manager

  4. Activez l'API CA Service.

  5. Créez un pool d'autorités de certification. Vous devez créer et activer au moins une autorité de certification dans ce pool d'autorités de certification.

Configurer l'intégration de CA Service au gestionnaire de certificats

Configurez le gestionnaire de certificats pour l'intégrer au service d'autorité de certification comme suit:

  1. Créez un compte de service du gestionnaire de certificats dans le projet Google Cloud cible:

    gcloud beta services identity create \
        --service=certificatemanager.googleapis.com \
        --project=PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID du projet Google Cloud cible.

La commande renvoie le nom de l'identité de service créée, comme illustré dans l'exemple suivant:

service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
  1. Attribuez au compte de service du gestionnaire de certificats le rôle Demandeur de certificat du service CA dans le pool d'autorités de certification cible comme suit:

    gcloud privateca pools add-iam-policy-binding CA_POOL \
        --location LOCATION \
        --member "serviceAccount:SERVICE_ACCOUNT" \
        --role roles/privateca.certificateRequester
    

    Remplacez les éléments suivants :

    • CA_POOL: ID du pool d'autorités de certification cible.
    • LOCATION: emplacement Google Cloud cible. Vous devez spécifier le même emplacement que le pool d'autorités de certification, la ressource de configuration d'émission de certificats et le certificat géré.
    • SERVICE_ACCOUNT: nom complet du compte de service que vous avez créé à l'étape 1.
  2. Créez une ressource de configuration d'émission de certificats pour votre pool d'autorités de certification:

    gcloud beta certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \
        --ca-pool=CA_POOL \
        --location=LOCATION> \
        [--lifetime=CERTIFICATE_LIFETIME] \
        [--rotation-window-percentage=ROTATION_WINDOW_PERCENTAGE] \
        [--key-algorithm=KEY_ALGORITHM]
    

    Remplacez les éléments suivants :

    • ISSUANCE_CONFIG_NAME: nom unique de la ressource de configuration d'émission de certificats.
    • CA_POOL: chemin d'accès complet à la ressource et nom du pool d'autorités de certification que vous souhaitez attribuer à cette ressource de configuration d'émission de certificats.
    • LOCATION: emplacement Google Cloud cible. Vous devez spécifier le même emplacement que le pool d'autorités de certification, la ressource de configuration d'émission de certificats et le certificat géré.
    • CERTIFICATE_LIFETIME: durée de vie du certificat, en jours. Les valeurs valides sont comprises entre 21 et 30 jours selon le format de durée standard. La valeur par défaut est de 30 jours (30D). Ce paramètre est facultatif.
    • ROTATION_WINDOW_PERCENTAGE: pourcentage de la durée de vie du certificat à partir duquel un renouvellement se déclenche. La valeur par défaut est de 66 %. Vous devez définir le pourcentage de la période de rotation par rapport à la durée de vie du certificat, de sorte que son renouvellement ait lieu au moins sept jours après son émission et au moins sept jours avant son expiration. Ce paramètre est facultatif.
    • KEY_ALGORITHM: algorithme de chiffrement utilisé pour générer la clé privée. Les valeurs valides sont ecdsa-p256 ou rsa-2048. La valeur par défaut est rsa-2048. Ce paramètre est facultatif.

Pour en savoir plus sur les ressources de configuration d'émission de certificats, consultez Gérer les configurations d'émission de certificats.

Créer un certificat régional géré par Google

Créez un certificat régional géré par Google, émis par votre service d'autorité de certification, à l'aide de la ressource de configuration d'émission de certificats créée à l'étape précédente:

gcloud

Exécutez la commande ci-dessous.

gcloud beta certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES" \
    --issuance-config="ISSUANCE_CONFIG_NAME" \
    --location="LOCATION"

Remplacez les éléments suivants :

  • CERTIFICATE_NAME: nom unique du certificat.
  • DOMAIN_NAMES: liste des domaines cibles de ce certificat, séparés par une virgule. Chaque nom de domaine doit être un nom de domaine complet, par exemple myorg.example.com.
  • ISSUANCE_CONFIG_NAME: nom de la ressource de configuration d'émission de certificats faisant référence au pool d'autorités de certification cible.
  • LOCATION: emplacement Google Cloud cible. Vous devez spécifier le même emplacement que le pool d'autorités de certification, la ressource de configuration d'émission de certificats et le certificat géré.

API

Créez le certificat en envoyant une requête POST à la méthode certificates.create comme suit:

POST /v1/projects/PROJECT_ID/locations/LOCATION/certificates?certificate_id=CERTIFICATE_NAME"
{
 name: "/projects/example-project/locations/LOCATION/certificates/my-cert",
 "managed": {
  "domains": ["DOMAIN_NAME"],
  "issuanceConfig": "ISSUANCE_CONFIG_NAME",
 },
}

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet Google Cloud cible.
  • LOCATION: emplacement Google Cloud cible. Vous devez spécifier le même emplacement que le pool d'autorités de certification, la ressource de configuration d'émission de certificats et le certificat géré.
  • CERTIFICATE_NAME: nom unique du certificat.
  • DOMAIN_NAME: domaine cible de ce certificat. Le nom de domaine doit être un nom de domaine complet, par exemple example.com ou www.example.com.
  • ISSUANCE_CONFIG_NAME: nom de la ressource de configuration d'émission de certificats faisant référence au pool d'autorités de certification cible.

Pour en savoir plus sur le processus de déploiement de certificats, consultez la section Présentation du déploiement.

Vérifier que le certificat est actif

Utilisez la commande suivante pour vérifier que le certificat lui-même est actif avant de le déployer sur votre équilibreur de charge. Le passage de l'état du certificat à ACTIVE peut prendre plusieurs minutes.

gcloud beta certificate-manager certificates describe CERTIFICATE_NAME \
    --location=LOCATION

Remplacez les éléments suivants :

  • CERTIFICATE_NAME: nom unique du certificat.
  • LOCATION: emplacement Google Cloud cible. Vous devez spécifier le même emplacement que le pool d'autorités de certification, la ressource de configuration d'émission de certificats et le certificat géré.

La commande renvoie un résultat semblable à celui-ci:

certificatePem: myPEM
createTime: '2021-10-20T12:19:53.370778666Z'
expireTime: '2022-05-07T05:03:49Z'
managed:
domains:
-   myorg.example.com
issuanceConfig: projects/myproject/locations/mylocation/issuanceConfigs/myissuanceConfig
state: ACTIVE
name: projects/myproject/locations/mylocation/certificates/mycertificate
scope: myScope
subjectAlternativeNames:- - myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Déployer le certificat régional géré par Google sur un équilibreur de charge

Pour déployer le certificat régional géré par Google, créez un proxy HTTPS cible et associez-y le certificat.

Créer le proxy HTTPS cible

Pour créer le proxy HTTPS cible et lui associer le certificat, exécutez la commande suivante:

gcloud compute target-https-proxies create PROXY_NAME \
    --url-map=URL_MAP \
    --region=REGION \
    --certificate-manager-certificates=CERTIFICATE_NAME

Remplacez les éléments suivants :

  • PROXY_NAME: nom unique du proxy.
  • URL_MAP : nom du mappage d'URL. Vous avez créé le mappage d'URL lors de la création de l'équilibreur de charge.
  • REGION: région dans laquelle vous créez le proxy cible HTTPS.
  • CERTIFICATE_NAME: nom du certificat.

Pour vérifier si le proxy cible a bien été créé, exécutez la commande suivante:

gcloud compute list target-https-proxies

Créer une règle de transfert

Définissez une règle de transfert et terminez la configuration de l'équilibreur de charge.

Effectuer un nettoyage

Pour annuler les modifications effectuées dans ce tutoriel, procédez comme suit:

  1. Supprimez le certificat géré par Google:

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
        --location=LOCATION
    

Remplacez les éléments suivants :

  • CERTIFICATE_NAME: nom du certificat
  • LOCATION: emplacement Google Cloud cible
  1. Supprimez la ressource de configuration d'émission de certificats:

    gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
        --location=LOCATION
    

Remplacez les éléments suivants :

  • CERTIFICATE_NAME: nom du certificat
  • LOCATION: emplacement Google Cloud cible
  1. Supprimez le pool d'autorités de certification comme décrit dans la section Supprimer un pool d'autorités de certification.

    N'oubliez pas que pour désactiver la dernière autorité de certification activée dans le pool d'autorités de certification référencé dans la ressource de configuration d'émission de certificats ou pour supprimer complètement le pool d'autorités de certification référencé, vous devez d'abord supprimer toutes les ressources de configuration d'émission de certificats qui font référence à ce pool.

Dépannage

Pour connaître les étapes de dépannage, consultez la section Problèmes liés aux certificats émis par une instance de service CA.

Étapes suivantes