Implementa un certificado regional administrado por Google


En este instructivo, se describe cómo usar el Administrador de certificados para implementar un certificado regional administrado por Google en un balanceador de cargas de aplicaciones externo regional o en un balanceador de cargas de aplicaciones interno regional.

Para implementar un certificado en un balanceador de cargas de aplicaciones externo regional o en un balanceador de cargas de aplicaciones interno regional, adjunta el certificado directamente al proxy de destino.

Objetivos

En este instructivo, se muestra cómo completar las siguientes tareas:

  • Crea un certificado administrado por Google emitido por una AC de confianza pública con autorización de DNS mediante el Administrador de certificados. Para crear un certificado regional administrado por Google, debes usar una autorización de DNS por proyecto.

  • Implementa el certificado en un balanceador de cargas compatible mediante un proxy HTTPS de destino.

Para obtener más información sobre el proceso de implementación de certificados, consulta Descripción general de la implementación.

Antes de comenzar

  1. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  2. Se requiere la versión 465.0.0 de Google Cloud CLI o una posterior para implementar el certificado. Para verificar la versión de gcloud CLI, ejecuta el siguiente comando:

    gcloud --version
    
  3. Para actualizar gcloud CLI, ejecuta el siguiente comando.

    gcloud components update
    
  4. Asegúrate de tener los siguientes roles para completar las tareas de este instructivo:

    • Propietario del Administrador de certificados: Es necesario para crear y administrar los recursos del Administrador de certificados.
    • Administrador del balanceador de cargas de Compute o Administrador de la red de Compute: Se requiere para crear y administrar el proxy de destino HTTPS.
    • Administrador de DNS: Es obligatorio si deseas usar Cloud DNS como tu solución de DNS.

    Para obtener más información, consulta lo siguiente:

Crear un certificado regional administrado por Google

Completa los pasos de esta sección para crear una autorización de DNS y un certificado administrado por Google que haga referencia a esa autorización de DNS.

Crea una autorización de DNS

Crea la autorización de DNS como se describe en esta sección. Si creas una autorización de DNS para un certificado comodín, como *.myorg.example.com, configura la autorización de DNS para el dominio superior, por ejemplo, myorg.example.com.

gcloud

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    --type=PER_PROJECT_RECORD \
    –-location="LOCATION" \
gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME \
    -–location="LOCATION"

Reemplaza lo siguiente:

  • AUTHORIZATION_NAME: Es el nombre de la autorización de DNS.
  • DOMAIN_NAME: Es el nombre del dominio para el que crearás esta autorización de DNS. El nombre de dominio debe ser un nombre de dominio completamente calificado, como myorg.example.com.
  • LOCATION: Es la ubicación en la que creas la autorización de DNS.

El comando muestra un resultado, como se indica en el siguiente ejemplo. Usa el registro CNAME del resultado para agregarlo a tu configuración de DNS.

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

Agrega el registro CNAME a tu configuración de DNS

Si usas Google Cloud para administrar tu DNS, completa los pasos de esta sección. De lo contrario, consulta la documentación de tu solución de DNS de terceros.

Antes de completar los pasos de esta sección, asegúrate de haber creado una zona del DNS pública.

Cuando creas una autorización de DNS, el comando de gcloud CLI muestra el registro CNAME correspondiente. Debes agregar este registro CNAME a tu configuración de DNS en la zona del DNS del dominio de destino de la siguiente manera:

gcloud

  1. Inicia la transacción del registro DNS:

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

    Reemplaza DNS_ZONE_NAME por el nombre de la zona del DNS de destino.

  2. Agrega el registro CNAME a la zona del DNS de destino:

    gcloud dns record-sets transaction add CNAME_RECORD_DATA \
      --name= CNAME_RECORD_NAME \
      --ttl="30" \
      --type="CNAME" \
      --zone="DNS_ZONE_NAME"
    

    Reemplaza lo siguiente:

    • CNAME_RECORD_DATA: Es el valor de datos completo del registro CNAME que muestra el comandogcloud CLId que creó la autorización de DNS correspondiente.
    • CNAME_RECORD_NAME: Es el valor del nombre completo del registro CNAME que muestra el comandogcloud CLId que creó la autorización de DNS correspondiente.
    • DNS_ZONE_NAME: Es el nombre de la zona del DNS de destino.

    Consulta el siguiente ejemplo:

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

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

    Reemplaza DNS_ZONE_NAME por el nombre de la zona del DNS de destino.

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

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

gcloud

Ejecuta el siguiente comando:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
   --domains=DOMAIN_NAME \
   --dns-authorizations=AUTHORIZATION_NAME \
   --location=LOCATION

Reemplaza lo siguiente:

  • CERTIFICATE_NAME: Es un nombre único del certificado.
  • DOMAIN_NAME: Es el dominio de destino del certificado. El prefijo de punto de asterisco (*.) hace referencia a un certificado comodín. El nombre de dominio debe ser un nombre de dominio completamente calificado, como myorg.example.com.
  • AUTHORIZATION_NAME: Es el nombre de la autorización de DNS que creaste para este certificado.
  • LOCATION: Es la ubicación en la que creas el certificado administrado por Google.

Para crear un certificado administrado por Google con un nombre de dominio comodín, usa el siguiente comando. Un certificado de nombre de dominio comodín abarca todos los subdominios de primer nivel de un dominio determinado.

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

Reemplaza lo siguiente:

  • CERTIFICATE_NAME: Es un nombre único del certificado.
  • DOMAIN_NAME: Es el dominio de destino del certificado. El prefijo *. significa un certificado comodín. El nombre de dominio debe ser un nombre de dominio completamente calificado, como myorg.example.com.
  • AUTHORIZATION_NAME: Es el nombre de la autorización de DNS que creaste para este certificado.
  • LOCATION: Es la ubicación en la que creas el certificado administrado por Google.

Verifica que el certificado esté activo

Usa el siguiente comando para verificar que el certificado esté activo antes de implementarlo en tu balanceador de cargas. El estado del certificado puede tardar varias horas en cambiar a ACTIVE.

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

Reemplaza lo siguiente:

  • CERTIFICATE_NAME: Es un nombre único del certificado.
  • LOCATION: Es la ubicación en la que creaste el certificado administrado por Google.

El resultado es similar al siguiente:

certificatePem: myPEM
createTime: '2021-10-20T12:19:53.370778666Z'
expireTime: '2022-05-07T05:03:49Z'
managed:
  authorizationAttemptInfo:
  - domain: myorg.example.com
    state: AUTHORIZED
  dnsAuthorizations:
  -  projects/my-project/locations/us-central1/dnsAuthorizations/myAuth
  domains:
  - myorg.example.com
  state: ACTIVE
name: projects/myProject/locations/us-central1/certificates/myCert
scope: myScope
sanDnsnames:
- myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Implementa el certificado en un balanceador de cargas

Para implementar el certificado administrado por Google en un balanceador de cargas, completa los siguientes pasos.

Antes de continuar con las tareas de esta sección, asegúrate de haber completado las tareas enumeradas en la sección Crea un certificado regional administrado por Google.

Para implementar un certificado administrado por Google regional en un balanceador de cargas de aplicaciones externo regional o un balanceador de cargas de aplicaciones interno regional, implementa el certificado adjuntándolo directamente al proxy de destino.

Adjunta el certificado directamente al proxy de destino

Para adjuntar el certificado directamente al proxy, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • PROXY_NAME: Es un nombre único del proxy.
  • URL_MAP: Es el nombre del mapa de URL que creaste cuando creaste el balanceador de cargas.
  • REGION: Es la región en la que se creará el proxy de destino HTTPS.
  • CERTIFICATE_NAME: Es el nombre del certificado.

Limpia

Para revertir los cambios que realizaste en este instructivo, completa los siguientes pasos:

  1. Borra el certificado administrado por Google:
    gcloud certificate-manager certificates delete CERTIFICATE_NAME
       --location=LOCATION
    
    Reemplaza lo siguiente:
  • CERTIFICATE_NAME: Es el nombre del certificado.
  • LOCATION: Es la ubicación en la que creaste el certificado administrado por Google.
  1. Borra la autorización de DNS:
    gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME
       --location=LOCATION
    
    Reemplaza lo siguiente:
  • AUTHORIZATION_NAME: Es el nombre de la autorización de DNS.
  • LOCATION: Es la ubicación en la que creaste la autorización de DNS.

¿Qué sigue?