En este instructivo, se explica el proceso de implementación de certificados mediante un certificado administrado por Google con autorización del balanceador de cargas como ejemplo.
Para ver una comparación de los tipos de autorización de dominio admitidos, consulta Autorización de dominio.
Los siguientes balanceadores de cargas admiten certificados administrados por Google con autorización de balanceadores de cargas:
- Balanceador de cargas de aplicaciones externo global
- Balanceador de cargas de aplicaciones clásico
- Balanceador de cargas de red del proxy externo global
Si deseas migrar un certificado existente al Administrador de certificados, sigue los pasos que se indican en Cómo migrar certificados al Administrador de certificados.
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 del balanceador de cargas mediante el Administrador de certificados.
- 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.
Si sigues los pasos de este instructivo a fin de implementar un certificado para un dominio que ya entrega tráfico de producción, ten en cuenta que el tráfico de ese dominio se interrumpirá mientras se aprovisione y active el certificado en el balanceador de cargas correspondiente.
Antes de comenzar
-
En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
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:
- Funciones y permisos del Administrador de certificados
- Roles y permisos de IAM de Compute Engine para Compute Engine
- Control de acceso con la IAM para Cloud DNS
Crear un certificado administrado por Google con autorización del balanceador de cargas
Para crear un certificado administrado por Google con autorización del balanceador de cargas, completa los pasos de esta sección.
Si quieres especificar varios nombres de dominio para el certificado, proporciona una lista delimitada por comas de nombres de dominio de destino para el certificado.
Para obtener más información, consulta el artículo sobre permisos y funciones.
Console
En la consola de Google Cloud, ve a la página Administrador de certificados.
En la página que aparece, selecciona la pestaña Certificados.
Haz clic en Agregar certificado.
Ingresa un Nombre para el certificado.
Este nombre debe ser único para el proyecto.
Ingresa la Descripción del certificado (opcional). La descripción te ayuda a identificar un certificado específico más adelante.
En Ubicación, elige Global.
En Alcance, elige Predeterminado.
En Tipo de certificado, elige Crear certificado administrado por Google.
En Tipo de autoridad certificadora, elige Público.
Especifica los Nombres de dominio del certificado. Ingresa una lista delimitada por comas de los dominios de destino. Además, cada nombre de dominio debe ser un nombre de dominio completamente calificado, como
myorg.example.com
.En Tipo de autorización, elige Autorización del balanceador de cargas.
Especifica una etiqueta para asociarla al certificado. Puedes agregar más de una etiqueta, si es necesario. Para agregar una etiqueta, haz clic en el botón add_box Agregar etiqueta y especifica una
key
y unavalue
para tu etiqueta.Haz clic en Crear. Verifica que el nuevo certificado aparezca en la lista de certificados.
gcloud
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES"
Reemplaza lo siguiente:
CERTIFICATE_NAME
: Es un nombre único del certificado.DOMAIN_NAMES
: Es una lista delimitada por comas de los dominios de destino para este certificado. Cada nombre de dominio debe ser un nombre de dominio completamente calificado, comomyorg.example.com
.
Terraform
Usa un recurso google_certificate_manager_certificate
.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
API
Para crear el certificado, realiza 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"], } }
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto de Google Cloud de destino.CERTIFICATE_NAME
: Es un nombre único que describe este certificado.DOMAIN_NAME
: Es el dominio de destino de este certificado. El nombre de dominio debe ser un nombre de dominio completamente calificado, comomyorg.example.com
.
Para obtener una descripción general del proceso de implementación de certificados, consulta Descripción general de la implementación.
Implementa el certificado en un balanceador de cargas
Completa los pasos de esta sección para implementar el certificado administrado por Google que creaste en los pasos anteriores en un balanceador de cargas.
Crea un mapa de certificados
Crea un mapa de certificados que haga referencia a la entrada de mapa de certificados asociada con tu certificado.
gcloud
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Reemplaza CERTIFICATE_MAP_NAME
por el nombre del mapa de certificados de destino.
Terraform
Crea una entrada de mapa de certificados
Crea una entrada de mapa de certificados y asóciala con tu certificado y con tu mapa de certificados.
gcloud
gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME" \ --certificates="CERTIFICATE_NAME" \ --hostname="HOSTNAME"
Reemplaza lo siguiente:
CERTIFICATE_MAP_ENTRY_NAME
: Es un nombre único de la entrada del mapa de certificados.CERTIFICATE_MAP_NAME
: Es el nombre del mapa de certificados al que se adjunta esta entrada de este mapa de certificados.CERTIFICATE_NAME
: Es el nombre del certificado que deseas asociar con esta entrada de mapa de certificados.HOSTNAME
: Es el nombre de host que deseas asociar con esta entrada de mapa de certificados.
Terraform
Usa un recurso google_certificate_manager_certificate_map_entry
.
Cómo verificar que la entrada del mapa de certificados esté activa
Usa el siguiente comando para verificar que la entrada de mapa de certificados esté activa antes de adjuntar tu mapa de certificados correspondiente al proxy de destino:
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Reemplaza lo siguiente:
CERTIFICATE_MAP_ENTRY_NAME
: Es el nombre de la entrada del mapa de certificados de destino.CERTIFICATE_MAP_NAME
: Es el nombre del mapa de certificados al que se adjunta esta entrada de este mapa de certificados.
El comando muestra un resultado similar al siguiente:
certificates: createTime: '2021-09-06T10:01:56.229472109Z' hostname: example.com name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry state: ACTIVE updateTime: '2021-09-06T10:01:58.277031787Z'
Conecta el mapa de certificados al proxy de destino
Adjunta el mapa de certificados configurado al proxy de destino.
Console
- En la consola de Google Cloud, ve a la página Proxies de destino.
Anota el nombre del proxy de destino.
Adjunta el mapa de certificados al proxy de destino:
gcloud compute target-https-proxies update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME"
Reemplaza lo siguiente:
* `PROXY_NAME`: the name of the target proxy
* `CERTIFICATE_MAP_NAME`: the name of the certificate
map referencing your certificate map entry and its associated
certificate
Terraform
Si hay certificados TLS (SSL) existentes adjuntos directamente al proxy, este da prioridad a los certificados a los que hace referencia el mapa de certificados en lugar de los certificados TLS (SSL) conectados directamente.
Esperar hasta que el certificado se haya activado
Después de conectar el certificado al proxy de destino, el certificado puede tardar hasta varias horas en emitirse y su estado cambiar a ACTIVE
. Una vez que el estado sea ACTIVE
, pueden pasar hasta 30 minutos para que el balanceador de cargas comience a usar el certificado.
Usa el siguiente comando para verificar el estado del certificado:
gcloud certificate-manager certificates describe CERTIFICATE_NAME
Reemplaza CERTIFICATE_NAME
por el nombre del certificado administrado por Google de destino.
El comando muestra un resultado similar al siguiente:
createTime: '2021-10-20T12:19:53.370778666Z' expireTime: '2022-05-07T05:03:49Z' managed: authorizationAttemptInfo: - domain: myorg.example.com state: AUTHORIZED domains: - myorg.example.com state: ACTIVE name: projects/myProject/locations/global/certificates/myCert sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
Si el estado del certificado no cambió a ACTIVE
después de varias horas, verifica lo siguiente:
- El mapa de certificados que hace referencia a este certificado se conectó al proxy de destino correcto, como se describe en Adjunta un mapa de certificados a un proxy.
- El proxy de destino se conectó al balanceador de cargas correcto, como se describe en Verifica la asociación del proxy de destino.
- La configuración de DNS del dominio de destino apunta a la dirección IP del balanceador de cargas de destino como se describe en Actualiza los registros AAAA y A de DNS para que apunten a la dirección IP del balanceador de cargas.
Si quieres conocer más pasos para solucionar problemas, consulta Solución de problemas de certificados SSL.
Limpia
Para revertir los cambios que realizaste en este instructivo, completa los siguientes pasos:
Desconecta el mapa de certificados del proxy.
Antes de desvincular el mapa de certificados, ten en cuenta lo siguiente:
- Si había certificados TLS (SSL) adjuntos directamente al proxy, la desvinculación del mapa de certificados hace que el proxy se reanude con esos certificados TLS (SSL) conectados de forma directa.
- Si no había certificados TLS (SSL) adjuntos directamente al proxy, el mapa de certificados no se puede desconectar del proxy. Debes adjuntar al menos un certificado TLS (SSL) directamente al proxy para poder desvincular el mapa de certificados.
Para desvincular el mapa de certificados, ejecuta el siguiente comando:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-map
Borra la entrada del mapa de certificados del mapa de certificados:
gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Reemplaza lo siguiente:
CERTIFICATE_MAP_ENTRY_NAME
: Es el nombre de la entrada del mapa de certificados de destino.CERTIFICATE_MAP_NAME
: Es el nombre del mapa de certificados de destino.
Borra el mapa de certificados:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Reemplaza
CERTIFICATE_MAP_NAME
por el nombre del mapa de certificados de destino.Borra el certificado administrado por Google:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Reemplaza
CERTIFICATE_NAME
por el nombre del certificado de destino.