Migrar certificados de balanceadores de carga a Certificate Manager


En este tutorial se muestra cómo migrar certificados de Cloud Load Balancing a Certificate Manager. Para obtener más información sobre los certificados de Cloud Load Balancing, consulta la descripción general de los certificados SSL en la documentación de Cloud Load Balancing.

Para migrar certificados de Cloud Load Balancing sin tiempo de inactividad, primero debe identificar los certificados que quiere migrar. A continuación, crea el mismo número de certificados gestionados por Google que certificados de Cloud Load Balancing. A continuación, consolida los certificados en un solo mapa de certificados y prueba el mapa de certificados en otro balanceador de carga. Si las pruebas se realizan correctamente, adjunta el mapa de certificados al balanceador de carga de destino que aloja tus certificados de Cloud Load Balancing.

Para ver la lista de balanceadores de carga admitidos, consulta el resumen de Gestor de certificados.

Objetivos

En este tutorial se explica cómo completar las siguientes tareas:

  • Identifica los certificados del balanceador de carga de destino que quieres migrar.
  • Crea certificados gestionados por Google.
  • Crea un mapa de certificados y entradas de mapa de certificados.
  • Prueba el mapa de certificados en otro balanceador de carga.
  • Asocia el mapa de certificados al balanceador de carga de destino.

Antes de empezar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  7. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine, Certificate Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  13. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  14. Roles obligatorios

    Asegúrate de que tienes los siguientes roles para completar las tareas de este tutorial:

    • Propietario de Certificate Manager (roles/certificatemanager.owner)

      Se requiere para crear y gestionar recursos de Certificate Manager.

    • Administrador de balanceadores de carga de Compute (roles/compute.loadBalancerAdmin) o Administrador de red de Compute (roles/compute.networkAdmin)

      Obligatorio para crear y gestionar un proxy de destino HTTPS.

    • Administrador de DNS (roles/dns.admin)

      Es obligatorio si quieres usar Cloud DNS como solución de DNS.

    Para obtener más información, consulta las siguientes secciones:

    Identificar los certificados que se van a migrar

    Para identificar los certificados que quieres migrar, sigue estos pasos:

    1. En el balanceador de carga, identifique el nombre del proxy de destino.

    2. Identifique los certificados que quiere migrar.

      Para encontrar los certificados adjuntos a un proxy de destino, ejecuta el siguiente comando:

      gcloud compute target-https-proxies describe TARGET_PROXY_NAME
      

      Sustituye TARGET_PROXY_NAME por el nombre del proxy de destino.

      El resultado debería ser similar al siguiente:

      creationTimestamp: '2021-10-06T04:05:07.520-07:00'
      fingerprint: c9Txdx6AfcM=
      id: '365692570234384780'
      kind: compute#targetHttpsProxy
      name: my-proxy
      selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/targetHttpsProxies/my-proxy
      sslCertificates:
      - https://www.googleapis.com/compute/v1/projects/my-project/global/sslCertificates/my-first-certificate
      - https://www.googleapis.com/compute/v1/projects/my-project/global/sslCertificates/my-second-certificate
      urlMap: https://www.googleapis.com/compute/v1/projects/my-project/global/urlMaps/my-map
      

      Anota los nombres de los certificados que aparecen en el campo sslCertificates. Para obtener más información, consulta Información general sobre los proxies de destino.

    3. Consulta los detalles de cada certificado:

      gcloud compute ssl-certificates --project=PROJECT_ID describe LB_CERTIFICATE_NAME
      

      Haz los cambios siguientes:

      • PROJECT_ID: el ID del Google Cloud proyecto.
      • LB_CERTIFICATE_NAME: el nombre del certificado del balanceador de carga.

      El resultado debería ser similar al siguiente:

         certificate: |
           -----BEGIN CERTIFICATE-----
           MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBX
           MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UE
           CxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYx
           OTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoT
           GUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIx
           MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63
           ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwS
           iV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351k
           KSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZ
           DrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zk
           j5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5
           cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esW
           CruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499
           iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35Ei
           Eua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbap
           sZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b
           9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAP
           BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAf
           BgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIw
           JQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUH
           MAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6Al
           oCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAy
           MAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIF
           AwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9
           NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9
           WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw
           9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy
           +qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvi
           d0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=
           -----END CERTIFICATE-----
         creationTimestamp: '2021-05-06T04:39:21.736-07:00'
         expireTime: '2022-06-07T01:10:34.000-07:00'
         id: '6422259403966690822'
         kind: compute#sslCertificate
         managed:
            domainStatus:
            a.my-domain1.example.com: ACTIVE
            b.my-domain2.example.com: ACTIVE
            domains:
            - a.my-domain1.example.com
            - b.my-domain2.example.com
            status: ACTIVE
         name: my-certificate
         selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/sslCertificates/my-certificate
         subjectAlternativeNames:
         - a. my-domain1.example.com
         - b. my-domain2.example.com
         type: MANAGED
      

    Crear certificados gestionados por Google

    Crea el mismo número de certificados gestionados por Google que certificados de balanceador de carga. En el caso de los balanceadores de carga globales o clásicos, crea certificados globales; en el de los balanceadores de carga regionales, crea certificados regionales; y, en el de los balanceadores de carga interregionales, crea certificados interregionales. Antes de crear los certificados, crea una autorización de DNS y añade el registro CNAME a la zona DNS autoritativa de tu dominio.

    Puedes crear certificados gestionados por Google con autorización de DNS (opción recomendada) o certificados autogestionados.

    En esta sección se enumeran los pasos y comandos para crear certificados globales gestionados por Google. Para crear un certificado gestionado por Google regional o multirregional, consulta el artículo Crear un certificado gestionado por Google.

    Crear una autorización de DNS

    Una autorización de DNS solo cubre un nombre de dominio. Debes crear una autorización de DNS independiente para cada nombre de dominio que quieras usar con el certificado de destino.

    Si vas a crear una autorización de DNS para un certificado comodín, como *.myorg.example.com, configura la autorización de DNS para el dominio principal (por ejemplo, myorg.example.com).

    Consola

    Puedes crear una autorización de DNS o adjuntar una que ya tengas al crear un certificado. Para obtener más información, consulta Crear un certificado gestionado por Google que haga referencia a la autorización de DNS.

    gcloud

    Para crear una autorización de DNS, usa el comando certificate-manager dns-authorizations create:

    gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
        --domain="DOMAIN_NAME"
    

    Haz los cambios siguientes:

    • AUTHORIZATION_NAME: el nombre de la autorización de DNS.
    • DOMAIN_NAME: el nombre del dominio de destino para el que estás creando esta autorización de DNS. El nombre de dominio debe ser un nombre de dominio completo, como myorg.example.com.

    Los certificados globales gestionados por Google usan FIXED_RECORD como tipo de autorización DNS predeterminado. Para usar la autorización de DNS PER_PROJECT_RECORD, ejecuta el siguiente comando:

    gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
        --domain="DOMAIN_NAME" \
        --type="PER_PROJECT_RECORD"
    

    Después de crear la autorización de DNS, verifícala con el comando certificate-manager dns-authorizations describe:

    gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME
    

    La salida es similar a la siguiente. En el resultado, busca la línea dnsResourceRecord y obtén el registro CNAME (data, name y type) para añadirlo a tu configuración de DNS.

    createTime: '2022-01-14T13:35:00.258409106Z'
    dnsResourceRecord:
      data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog.
      name: _acme-challenge_ujmmovf2vn55tgye.myorg.example.com
      type: CNAME
    domain: myorg.example.com
    name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization
    updateTime: '2022-01-14T13:35:01.571086137Z'
    

    Terraform

    Para crear una autorización de DNS, puedes usar un recurso google_certificate_manager_dns_authorization.

    resource "google_certificate_manager_dns_authorization" "default" {
      name        = "${local.name}-dnsauth-${random_id.tf_prefix.hex}"
      description = "The default dns auth"
      domain      = local.domain
      labels = {
        "terraform" : true
      }
    }

    Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.

    API

    Para crear una autorización de DNS, haz una solicitud POST al método dnsAuthorizations.create:

    POST /v1/projects/PROJECT_ID/locations/global/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME"
    {
      "domain": "DOMAIN_NAME",
      "type": "PER_PROJECT_RECORD" //optional
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del Google Cloud proyecto.
    • AUTHORIZATION_NAME: el nombre de la autorización de DNS.
    • DOMAIN_NAME: el nombre del dominio de destino para el que estás creando esta autorización de DNS. El nombre de dominio debe ser un nombre de dominio completo, como myorg.example.com.

    Crear un certificado gestionado por Google que haga referencia a la autorización de DNS

    Para crear un certificado global gestionado por Google que haga referencia a la autorización de DNS que has creado en los pasos anteriores, haz lo siguiente:

    Consola

    1. En la Google Cloud consola, ve a la página Gestor de certificados.

      Ir a Certificate Manager

    2. En la pestaña Certificados, haz clic en Añadir certificado.

    3. En el campo Nombre del certificado, introduce un nombre único para el certificado.

    4. Opcional: En el campo Descripción, escribe una descripción del certificado. La descripción te permite identificar el certificado.

    5. En Ubicación, selecciona Global.

    6. En Ámbito, selecciona Predeterminado.

    7. En Tipo de certificado, selecciona Crear certificado gestionado por Google.

    8. En Tipo de autoridad de certificación, selecciona Pública.

    9. En el campo Domain Names (Nombres de dominio), especifique una lista de nombres de dominio del certificado delimitados por comas. Cada nombre de dominio debe ser un nombre de dominio completo, como myorg.example.com. El nombre de dominio también puede ser un nombre de dominio comodín, como *.example.com.

    10. En Tipo de autorización, selecciona Autorización de DNS.

      En la página se muestran las autorizaciones de DNS de los nombres de dominio. Si un nombre de dominio no tiene una autorización de DNS asociada, sigue estos pasos para crear una:

      1. Haz clic en Crear autorización de DNS que falta.
      2. En el campo Nombre de autorización de DNS, especifica el nombre de la autorización de DNS. El tipo de autorización de DNS predeterminado es FIXED_RECORD. Para gestionar los certificados de forma independiente en varios proyectos, marca la casilla Autorización por proyecto.
      3. Haz clic en Crear autorización de DNS.
    11. En el campo Etiquetas, especifica las etiquetas que quieras asociar al certificado. Para añadir una etiqueta, haz clic en Añadir etiqueta y especifica una clave y un valor para la etiqueta.

    12. Haz clic en Crear.

      El nuevo certificado aparece en la lista de certificados.

    gcloud

    Para crear un certificado global gestionado por Google con autorización de DNS, ejecuta el comando certificate-manager certificates create con la marca dns-authorizations:

    gcloud certificate-manager certificates create CERTIFICATE_NAME \
        --domains="DOMAIN_NAME,*.DOMAIN_NAME" \
        --dns-authorizations="AUTHORIZATION_NAMES"
    

    Haz los cambios siguientes:

    • CERTIFICATE_NAME: el nombre del certificado.
    • DOMAIN_NAME: el nombre del dominio de destino. El nombre de dominio debe ser un nombre de dominio completo, como myorg.example.com, o un dominio comodín, como *.myorg.example.com. El prefijo de asterisco (*.) indica que se trata de un certificado comodín.
    • AUTHORIZATION_NAMES: una lista de nombres de las autorizaciones de DNS que has creado para el certificado, separados por comas.

    Terraform

    Usa un google_certificate_manager_certificaterecurso.

    resource "google_certificate_manager_certificate" "root_cert" {
      name        = "${local.name}-rootcert-${random_id.tf_prefix.hex}"
      description = "The wildcard cert"
      managed {
        domains = [local.domain, "*.${local.domain}"]
        dns_authorizations = [
          google_certificate_manager_dns_authorization.default.id
        ]
      }
      labels = {
        "terraform" : true
      }
    }

    API

    Para crear el certificado, haz una solicitud POST al método certificates.create de la siguiente manera:

    POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
    {
     "managed": {
      "domains": ["DOMAIN_NAME"],
      "dnsAuthorizations": [
       "projects/PROJECT_ID/locations/global/dnsAuthorizations/AUTHORIZATION_NAME",
      ],
     }
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del Google Cloud proyecto.
    • CERTIFICATE_NAME: el nombre del certificado.
    • DOMAIN_NAME: el nombre del dominio de destino. El nombre de dominio debe ser un nombre de dominio completo, como myorg.example.com, o un dominio comodín, como *.myorg.example.com. El prefijo de asterisco y punto (*.) indica que se trata de un certificado comodín.
    • AUTHORIZATION_NAMES: lista delimitada por comas de los nombres de las autorizaciones de DNS.

    Añadir el registro CNAME a tu configuración de DNS

    Si usas una solución de DNS de terceros para gestionar tu DNS, consulta su documentación para añadir el registro CNAME a la configuración de DNS. Si usas Google Cloud para gestionar tu DNS, sigue los pasos que se indican en esta sección.

    Consola

    Para crear un conjunto de registros, sigue estos pasos:

    1. En la consola de Google Cloud , ve a la página Zonas DNS.

      Ir a las zonas de Cloud DNS

    2. Haz clic en el nombre de la zona DNS en la que quieras añadir el registro.

    3. En la página Detalles de la zona, haga clic en Añadir estándar.

    4. En la página Crear conjunto de registros, en el campo Nombre de DNS, introduce el subdominio de la zona DNS.

      Cuando introduzca el nombre del subdominio, asegúrese de que el nombre del subdominio, incluido el texto atenuado que se muestra en el campo Nombre DNS, coincida con el valor completo del campo dnsResourceRecord.name tal como se muestra en el resultado del comando gcloud certificate-manager dns-authorizations describe.

      Consulta los siguientes ejemplos:

      • Si el valor del campo dnsResourceRecord.name es _acme-challenge.myorg.example.com. y el texto atenuado del campo Nombre de DNS es .example.com., introduce _acme-challenge.myorg.

      • Si el valor del campo dnsResourceRecord.name es _acme-challenge.myorg.example.com. y el texto atenuado del campo Nombre de DNS es .myorg.example.com., introduce _acme-challenge.

      • Si el valor del campo dnsResourceRecord.name es _acme-challenge_ujmmovf2vn55tgye.myorg.example.com. y el texto atenuado del campo Nombre DNS es .myorg.example.com., introduce _acme-challenge_ujmmovf2vn55tgye.

    5. En el campo Tipo de registro del recurso, selecciona CNAME.

    6. En el campo TTL, introduce un valor numérico positivo para el tiempo de vida del registro del recurso, que es el tiempo que puede almacenarse en la caché.

    7. En la lista Unidad TTL, selecciona la unidad de tiempo. Por ejemplo: 30 minutes.

    8. En el campo Nombre canónico, introduce el valor completo del campo dnsResourceRecord.data tal como se muestra en la salida del comando gcloud certificate-manager dns-authorizations describe.

    9. Para introducir información adicional, haz clic en Añadir elemento.

    10. Haz clic en Crear.

    gcloud

    Cuando creas una autorización de DNS, el comando de la CLI de gcloud devuelve el registro CNAME correspondiente. Para añadir el registro CNAME a la configuración de DNS en la zona DNS del dominio de destino, sigue estos pasos:

    1. Inicia la transacción del registro DNS:

      gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
      

      Sustituye DNS_ZONE_NAME por el nombre de la zona DNS de destino.

    2. Añade el registro CNAME a la zona DNS de destino:

      gcloud dns record-sets transaction add CNAME_RECORD \
          --name="VALIDATION_SUBDOMAIN_NAME.DOMAIN_NAME." \
          --ttl="30" \
          --type="CNAME" \
          --zone="DNS_ZONE_NAME"
      

      Haz los cambios siguientes:

      • CNAME_RECORD: el valor de datos completo del registro CNAME devuelto por el comando de la CLI de Google Cloud que creó la autorización de DNS correspondiente.
      • VALIDATION_SUBDOMAIN_NAME: el subdominio de prefijo de la zona DNS, como _acme-challenge. Puedes copiar el nombre del registro del comando gcloud certificate-manager dns-authorizations describe tal como se describe en el artículo Crear una autorización de DNS.
      • DOMAIN_NAME: el nombre del dominio de destino.El nombre de dominio debe ser un nombre de dominio completo, como myorg.example.com. También debes incluir el punto final después del nombre de dominio de destino.
      • DNS_ZONE_NAME: el nombre de la zona DNS de destino.

      Consulta el siguiente ejemplo:

      gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \
          --name="_acme-challenge.myorg.example.com." \
          --ttl="30" \
          --type="CNAME" \
          --zone="myorg-example-com"
      
    3. Ejecuta la transacción de registro DNS para guardar los cambios:

      gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
      

      Sustituye DNS_ZONE_NAME por el nombre de la zona DNS de destino.

    Terraform

    Para añadir el registro CNAME a tu configuración de DNS, puedes usar un google_dns_record_set recurso.

    resource "google_dns_record_set" "cname" {
      name         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].name
      managed_zone = google_dns_managed_zone.default.name
      type         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].type
      ttl          = 300
      rrdatas      = [google_certificate_manager_dns_authorization.default.dns_resource_record[0].data]
    }

    Verificar el estado del certificado

    Antes de implementar un certificado en un balanceador de carga, comprueba que esté activo. El estado del certificado puede tardar varios minutos en cambiar a ACTIVE.

    Consola

    1. En la Google Cloud consola, ve a la página Gestor de certificados.

      Ir a Certificate Manager

    2. En la pestaña Certificados, consulta la columna Estado del certificado.

    gcloud

    Para verificar el estado del certificado, ejecuta el siguiente comando:

    gcloud certificate-manager certificates describe CERTIFICATE_NAME
    

    Sustituye CERTIFICATE_NAME por el nombre del certificado gestionado por Google de destino.

    El resultado debería ser similar al siguiente:

    createTime: '2021-10-20T12:19:53.370778666Z'
    expireTime: '2022-05-07T05:03:49Z'
    managed:
      authorizationAttemptInfo:
      - domain: myorg.example.com
        state: AUTHORIZED
      dnsAuthorizations:
        - projects/myProject/locations/global/dnsAuthorizations/myCert
      domains:
      - myorg.example.com
      state: ACTIVE
    name: projects/myProject/locations/global/certificates/myCert
    pemCertificate: |
      -----BEGIN CERTIFICATE-----
      [...]
      -----END CERTIFICATE-----
    sanDnsnames:
      -   myorg.example.com
    updateTime: '2021-10-20T12:19:55.083385630Z'
    

    Si el estado del certificado no es ACTIVE después de varias horas, comprueba que hayas añadido correctamente el registro CNAME a tu configuración de DNS.

    Para ver más pasos para solucionar problemas, consulta Solucionar problemas de Gestor de certificados.

    Crear el mapeado de certificados

    Para desplegar un certificado en un balanceador de carga de aplicación externo global, crea un mapa de certificados.

    gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
    

    Haz los cambios siguientes:

    • CERTIFICATE_MAP_NAME: el nombre del mapa de certificados.

    Crear las entradas del mapa de certificados

    Para desplegar un certificado en un balanceador de carga de aplicación externo global, crea una entrada de mapa de certificados.

    Por cada certificado que quieras migrar, crea entradas de mapa de certificados que hagan referencia a esos certificados de la siguiente manera:

    1. Consulta los detalles del certificado.

    2. En el registro, por cada dominio que aparezca en el campo subjectAlternativeNames, crea una entrada de mapa de certificados que cubra ese dominio. Si más de un certificado cubre un solo dominio, solo tienes que crear una entrada de mapa de certificados y usar cualquier certificado válido que cubra ese dominio.

      gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
          --map="CERTIFICATE_MAP_NAME" \
          --certificates="CERTIFICATE_NAMES" \
          --hostname="HOSTNAME"
      

      Haz los cambios siguientes:

      • CERTIFICATE_MAP_ENTRY_NAME: el nombre de la entrada del mapa de certificados.
      • CERTIFICATE_MAP_NAME: el nombre del mapa de certificados al que está adjunta la entrada del mapa de certificados.
      • CERTIFICATE_NAMES: una lista separada por comas de los nombres de los certificados que quieras asociar a esta entrada de mapa de certificados.
      • HOSTNAME: el nombre de host que quieras asociar a la entrada del mapa de certificados.
    3. Opcional: Crea una entrada de mapa de certificados principal que haga referencia al certificado que corresponda al primer certificado de la lista de certificados adjuntos originalmente al proxy.

      gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
         --map="CERTIFICATE_MAP_NAME" \
         --certificates="CERTIFICATE_NAMES" \
         --set-primary
      

      Haz los cambios siguientes:

      • CERTIFICATE_MAP_ENTRY_NAME: el nombre de la entrada del mapa de certificados.
      • CERTIFICATE_MAP_NAME: el nombre del mapa de certificados al que está adjunta la entrada del mapa de certificados.
      • CERTIFICATE_NAMES: una lista separada por comas de los nombres de los certificados que quieras asociar a esta entrada de mapa de certificados.
    4. Para verificar el estado activo de cada entrada de mapa de certificados que hayas creado, ejecuta el siguiente comando:

       gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
           --map="CERTIFICATE_MAP_NAME"
      

      Haz los cambios siguientes:

      • CERTIFICATE_MAP_ENTRY_NAME: el nombre de la entrada del mapa de certificados.
      • CERTIFICATE_MAP_NAME: el nombre del mapa de certificados al que está adjunta la entrada del mapa de certificados.

      El resultado debería ser similar al siguiente:

         certificates:
         - projects/my-project/locations/global/certificates/my-certificate
         createTime: '2021-09-06T10:01:56.229472109Z'
         hostname: example.com
         name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/my-map-entry
         state: ACTIVE
         updateTime: '2021-09-06T10:01:58.277031787Z'
      

    Opcional: Prueba tu configuración en un nuevo balanceador de carga

    Para minimizar el tiempo de inactividad, te recomendamos que pruebes los mapas de certificados recién configurados en un balanceador de carga nuevo que no esté sirviendo tráfico de producción. De esta forma, podrás detectar y resolver cualquier error antes de continuar con la migración en tu entorno de producción.

    Para probar la configuración, sigue estos pasos:

    1. Crea un balanceador de carga global con un proxy de destino. Para crear un balanceador de carga, consulte las siguientes páginas:

    2. Adjunta el mapa de certificados al proxy de destino del nuevo balanceador de carga.

      gcloud compute target-https-proxies create TEST_PROXY_NAME \
          --certificate-map="CERTIFICATE_MAP_NAME" \
          --global
      

      Haz los cambios siguientes:

      • TEST_PROXY_NAME: el nombre del proxy de destino de la prueba.
      • CERTIFICATE_MAP_NAME: el nombre del mapa de certificados que hace referencia a la entrada del mapa de certificados y al certificado asociado.
    3. Por cada dominio de destino incluido en la migración, prueba la conectividad al dominio en la dirección IP del nuevo balanceador de carga:

      openssl s_client -showcerts -servername DOMAIN_NAME -connect IP_ADDRESS:443
      

      Haz los cambios siguientes:

      • DOMAIN_NAME: el nombre del dominio de destino.
      • IP_ADDRESS: la dirección IP del nuevo balanceador de carga.

      Para obtener más información sobre cómo probar la conectividad, consulta Prueba con OpenSSL.

    Limpiar el entorno de prueba

    Limpia el entorno de pruebas que has creado en los pasos anteriores.

    Elimina el balanceador de carga de prueba tal como se describe en la sección Eliminar el balanceador de carga.

    No elimine los certificados, el mapa de certificados ni las entradas del mapa de certificados que haya creado en los pasos anteriores.

    Aplica el nuevo mapa de certificados al balanceador de carga de destino

    Una vez que hayas probado la nueva configuración del certificado y hayas confirmado que es válida, aplica el nuevo mapa de certificados al balanceador de carga de destino (el balanceador de carga que aloja tus certificados) siguiendo estos pasos.

    1. Si usas un balanceador de carga global, asocia el mapa de certificados al proxy de destino del nuevo balanceador de carga:

      gcloud compute target-https-proxies update TARGET_PROXY_NAME \
          --certificate-map="CERTIFICATE_MAP_NAME" \
          --global
      

      Haz los cambios siguientes:

      • TARGET_PROXY_NAME: el nombre del proxy de destino.
      • CERTIFICATE_MAP_NAME: el nombre del mapa de certificados que hace referencia a la entrada del mapa de certificados y al certificado asociado.
    2. Espera a que se aplique el cambio de configuración y el balanceador de carga empiece a servir el nuevo certificado. Este proceso suele tardar unos minutos, pero puede prolongarse hasta 30 minutos.

    Tus certificados se han migrado. Si detecta algún problema con su tráfico, desvincule el nuevo mapa de certificados del proxy de destino. De esta forma, el balanceador de carga volverá a su configuración original.

    Siguientes pasos