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 del dominio.
Los siguientes balanceadores de cargas admiten certificados administrados por Google con la autorización del balanceador 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 Migra 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 el certificado se aprovisione y active en el balanceador de cargas correspondiente.
Antes de comenzar
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Asegúrate de tener los siguientes roles para completar las tareas de este instructivo:
- Propietario del Administrador de certificados: Es obligatorio para crear y administrar los recursos del Administrador de certificados.
- Administrador del balanceador de cargas de Compute o Administrador de red de Compute: Es obligatorio para crear y administrar el proxy de destino HTTPS.
- Administrador de DNS: es obligatorio si deseas usar Cloud DNS como solución de DNS.
Para obtener más información, consulta lo siguiente:
- Funciones y permisos del Administrador de certificados
- Funciones y permisos de IAM de Compute Engine para Compute Engine
- Control de acceso con la IAM para Cloud DNS
Crea un certificado administrado por Google con autorización de 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.
Consola
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.
Opcional: Ingresa la Descripción del certificado. 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, selecciona Pública.
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 asociar 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 certificado nuevo 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
: 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 del 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 del mapa de certificados
Crea una entrada de mapa de certificados y asóciala con tu certificado y 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 del mapa de certificados.CERTIFICATE_NAME
: Es el nombre del certificado que deseas asociar con esta entrada del mapa de certificados.HOSTNAME
: Es el nombre de host que deseas asociar con esta entrada del mapa de certificados.
Terraform
Usa un recurso google_certificate_manager_certificate_map_entry
.
Verifica 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 del certificado de destino.CERTIFICATE_MAP_NAME
: Es el nombre del mapa de certificados al que se adjunta esta entrada del 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'
Adjunta el mapa de certificados al proxy de destino
Adjunta el mapa de certificados configurado al proxy de destino.
Consola
- En la consola de Google Cloud, ve a la página Proxies de destino.
Anota el nombre del proxy de destino.
Conecta 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 sobre los certificados TLS (SSL) adjuntos directamente.
Espere hasta que el certificado se active
Después de adjuntar el certificado al proxy de destino, el certificado puede tardar hasta varias horas en emitirse y su estado cambia a ACTIVE
. Una vez que el estado es ACTIVE
, el balanceador de cargas puede tardar hasta 30 minutos en comenzar a usar el certificado.
Usa el siguiente comando para comprobar el estado del certificado:
gcloud certificate-manager certificates describe CERTIFICATE_NAME
Reemplaza CERTIFICATE_NAME
por el nombre del certificado de destino administrado por Google.
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 cambia a ACTIVE
después de varias horas, verifica lo siguiente:
- El mapa de certificados que hace referencia a este certificado se adjuntó 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 DNS A y AAAA para que apunten a la dirección IP del balanceador de cargas.
Si quieres obtener más pasos para solucionar problemas, consulta Soluciona 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 separar el mapa de certificados, ten en cuenta lo siguiente:
- Si había certificados TLS (SSL) adjuntos directamente al proxy, desconectar el mapa de certificados hace que el proxy se reanude con el uso de esos certificados TLS (SSL) conectados directamente.
- Si no había certificados TLS (SSL) adjuntos directamente al proxy, el mapa de certificados no se puede desconectar del proxy. Primero, debes adjuntar al menos un certificado TLS (SSL) directamente al proxy para poder separar el mapa de certificados.
Para separar 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 del certificado 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.