En este instructivo, se explica el proceso de implementación de certificados mediante un certificado administrado por Google con DNS autorización como ejemplo.
Los siguientes balanceadores de cargas admiten certificados administrados por Google con DNS autorización:
- Balanceador de cargas de aplicaciones externo global
- Balanceador de cargas de aplicaciones clásico
- Balanceador de cargas de aplicaciones interno entre regiones
- Balanceador de cargas de red del proxy externo global
Para ver una comparación de los tipos de autorización de dominio admitidos, consulta Descripción del dominio autorizaciones.
Si quieres migrar un certificado existente al Administrador de certificados, sigue los pasos que se indican en Migra certificados a Administrador de certificados en su lugar.
Objetivos
En este instructivo, se muestra cómo completar las siguientes tareas:
- Crear un certificado administrado por Google emitido por un profesional de confianza autoridad certificadora con autorización de DNS con el Administrador de certificados.
- Implementar el certificado en un balanceador de cargas compatible con un HTTPS de destino proxy.
Para obtener más información sobre el proceso de implementación de certificados, consulta la descripción general de la implementación.
Antes de comenzar
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Se requiere la versión
465.0.0
o posterior de gcloud CLI para realizar la implementación el certificado. Para verificar tu versión de gcloud CLI, ejecuta el comando siguiente comando:gcloud --version
Para actualizar gcloud CLI, ejecuta el siguiente comando.
gcloud components update
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. del Administrador de certificados.
- Administrador del balanceador de cargas de Compute o Administrador de red de Compute: Obligatorio para crear y administrar proxy HTTPS de destino.
- Administrador de DNS: es obligatorio si quieres usar Cloud DNS como solución de DNS.
Para obtener más información, consulta lo siguiente:
- Roles y permisos de 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 DNS
Completa los pasos de esta sección para crear una autorización de DNS y una Certificado administrado por Google que hace 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 estás creando un
Autorización de DNS para un certificado comodín, como *.myorg.example.com
,
configurar 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" gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME
Para usar la autorización de DNS por proyecto, ejecuta el siguiente comando:
gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \ --domain="DOMAIN_NAME" \ --type="PER_PROJECT_RECORD" gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME
Reemplaza lo siguiente:
AUTHORIZATION_NAME
: Es el nombre de la autorización de DNS.DOMAIN_NAME
: Es el nombre del dominio para el que creas esta autorización de DNS. El nombre de dominio debe ser un nombre de usuario nombre de dominio, comomyorg.example.com
.
El comando muestra un resultado similar al siguiente. Usa el registro CNAME de la salida a agregar a la 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.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 una
Recurso google_certificate_manager_dns_authorization
.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega el registro CNAME a tu configuración de DNS
Si usas Google Cloud para administrar tu DNS, completa los pasos en esta sección. De lo contrario, consulta la documentación de tu DNS de terceros. de Google Cloud.
Antes de completar los pasos de esta sección, asegúrate de haber creado un zona del DNS pública.
Cuando creas una autorización de DNS, el comando de gcloud CLI devuelve 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
- Inicia la transacción del registro DNS:
gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
Reemplaza DNS_ZONE_NAME
por el nombre del DNS de destino.
zona.
- Agrega el registro CNAME a la zona del DNS de destino:
gcloud dns record-sets transaction add CNAME_RECORD \ --name="_acme-challenge.DOMAIN_NAME." \ --ttl="30" \ --type="CNAME" \ --zone="DNS_ZONE_NAME"
Reemplaza lo siguiente:
CNAME_RECORD
: Es el valor completo de los datos del registro CNAME. que devuelve el comando de Google Cloud CLI que creó el DNS correspondiente autorización.DOMAIN_NAME
: Es el nombre del dominio de destino. El nombre de dominio debe ser un nombre de dominio completamente calificado, comomyorg.example.com
También debes incluir el punto final después del nombre de dominio de destino.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.authorize.certificatemanager.goog. \ --name="_acme-challenge.myorg.example.com." \ --ttl="30" \ --type="CNAME" \ --zone="myorg-example-com"
- Ejecuta la transacción del registro DNS para guardar los cambios:
gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
Reemplaza DNS_ZONE_NAME
por el nombre del DNS de destino.
zona.
Terraform
Para agregar el registro CNAME a tu configuración de DNS, puedes usar un
Recurso google_dns_record_set
.
Crea un certificado 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:
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.
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 cualquiera de las siguientes opciones:
- Predeterminado: Elige la configuración predeterminada para el balanceador de cargas de aplicaciones externo global, el balanceador de cargas de aplicaciones clásico o el balanceador de cargas de red del proxy externo global.
- All-regions (Todas las regiones): Elige todas las regiones para un balanceador de cargas de aplicaciones interno entre regiones.
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 de los dominios de destino delimitada por comas. Además, cada nombre de dominio debe ser un nombre de dominio, como
myorg.example.com
.En Tipo de autorización, elige Autorización de DNS. Si el botón tiene una autorización de DNS asociada, se seleccionará automáticamente. Si el nombre de dominio no tiene una autorización de DNS asociada, haz lo siguiente:
- Haz clic en Crear autorización de DNS faltante para mostrar el campo Crear DNS Cuadro de diálogo de autorización
- En el campo Nombre de autorización de DNS, especifica el nombre de autorización de DNS.
- Haz clic en Crear autorización de DNS. Verifica que el nombre de DNS se asocie al nombre de dominio.
Especifica una etiqueta para asociar al certificado. Puedes agregar más de una etiqueta, si es necesario. Para agregar una etiqueta, haz clic en 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
Para un balanceador de cargas de aplicaciones externo global, un balanceador de cargas de aplicaciones clásico Balanceador de cargas de red del proxy externo global:
Ejecuta el siguiente comando:
gcloud certificate-manager certificates create CERTIFICATE_NAME
--domains=DOMAIN_NAME
--dns-authorizations=AUTHORIZATION_NAME
Reemplaza lo siguiente:
CERTIFICATE_NAME
: Es un nombre único del certificado.DOMAIN_NAME
: Es el dominio de destino del certificado. El nombre de dominio debe ser un nombre de dominio completamente calificado, comomyorg.example.com
AUTHORIZATION_NAME
: Es el nombre de la autorización de DNS que creaste para este certificado.
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
Reemplaza lo siguiente:
CERTIFICATE_NAME
: Es un nombre único del certificado.DOMAIN_NAME
: Es el dominio de destino del certificado. El prefijo de asterisco punto (*.
) indica un certificado de comodín. Dominio debe ser un nombre de dominio completamente calificado, comomyorg.example.com
.AUTHORIZATION_NAME
: Es el nombre de la autorización de DNS. que creaste para este certificado.
Para un balanceador de cargas de aplicaciones interno entre regiones:
Ejecuta el siguiente comando:
gcloud certificate-manager certificates create CERTIFICATE_NAME
--domains=DOMAIN_NAME
--dns-authorizations=AUTHORIZATION_NAME
--scope=all-regions
Reemplaza lo siguiente:
CERTIFICATE_NAME
: Es un nombre único del certificado.DOMAIN_NAME
: Es el dominio de destino del certificado. El nombre de dominio debe ser un nombre de dominio completamente calificado, comomyorg.example.com
AUTHORIZATION_NAME
: Es el nombre de la autorización de DNS que creaste para este certificado.
Para crear un certificado administrado por Google con un nombre de dominio comodín, usa el siguiente comando. Un nombre de dominio comodín incluye 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 \ --scope=all-regions
Reemplaza lo siguiente:
CERTIFICATE_NAME
: Es un nombre único del certificado.DOMAIN_NAME
: Es el dominio de destino del certificado. El prefijo de asterisco punto (*.
) indica un certificado de comodín. El nombre de dominio debe ser un nombre de dominio completamente calificado, comomyorg.example.com
AUTHORIZATION_NAME
: Es el nombre de la autorización de DNS. que creaste para este certificado.
Terraform
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. Pueden pasar hasta varias horas
estado del certificado para cambiar a ACTIVE
.
gcloud certificate-manager certificates describe CERTIFICATE_NAME
Reemplaza CERTIFICATE_NAME
por el nombre del destino.
Certificado administrado por Google.
El comando muestra un resultado similar al siguiente:
expireTime: '2022-05-07T05:03:49Z' managed: authorizationAttemptInfo: - domain: myorg.example.com state: AUTHORIZED dnsAuthorizations: - projects/my-project/locations/global/dnsAuthorizations/myAuth 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'
Implementa el certificado en un balanceador de cargas
En esta sección, se explican los pasos necesarios para implementar el servicio administrado certificado en un balanceador de cargas.
Antes de continuar con las tareas de esta sección, asegúrate de haber completado las tareas enumeradas en el Crea un certificado administrado por Google con autorización de DNS sección.
Según el tipo de balanceador de cargas, puedes implementar certificados de la siguiente manera:
- Para los siguientes balanceadores de cargas, implementa el certificado con un mapa de certificados:
- Balanceador de cargas de aplicaciones externo global
- Balanceador de cargas de red del proxy externo global
- Balanceador de cargas de aplicaciones clásico
- Para el balanceador de cargas de aplicaciones interno entre regiones, implementa el certificado mediante si lo adjuntas directamente al proxy de destino.
Implementa el certificado con un mapa de certificados
En esta sección, se describen los pasos para implementar un certificado con un certificado mapa.
Crea un mapa de certificados
Crea un mapa de certificados que hace referencia a la entrada del mapa de certificados asociado con tu certificado:
gcloud
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Reemplaza CERTIFICATE_MAP_NAME
por el nombre del destino.
mapa de certificados.
Terraform
Para crear un mapa de certificados, puedes usar un
Recurso google_certificate_manager_certificate_map
.
Crea una entrada del mapa de certificados
Crea una entrada de mapa de certificados. y asociarlo con tu certificado como y el 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 del entrada del mapa de certificadosCERTIFICATE_MAP_NAME
: Es el nombre del certificado asignado al que esta entrada del mapa de certificados adjuntaCERTIFICATE_NAME
: Es el nombre del certificado que deseas. para asociar con esta entrada del mapa de certificadosHOSTNAME
: Es el nombre de host que deseas asociar. con esta entrada de mapa de certificados
Terraform
Para crear una entrada del mapa de certificados, puedes usar 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 del destino. entrada del mapa de certificadosCERTIFICATE_MAP_NAME
: Es el nombre del certificado asignado al que esta entrada del mapa de certificados adjunta
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:
gcloud
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" \ --global
Reemplaza lo siguiente:
PROXY_NAME
: Es el nombre del proxy de destino.CERTIFICATE_MAP_NAME
: Es el nombre del certificado. haga referencia a la entrada del mapa de certificados y a los recursos certificado.
Terraform
Para adjuntar el mapa de certificados al proxy de destino, puedes usar un recurso google_compute_target_https_proxy
.
Si hay certificados TLS (SSL) existentes conectados 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.
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 \ --global \ --certificate-manager-certificates=CERTIFICATE_NAME
Reemplaza lo siguiente:
PROXY_NAME
: Es un nombre único del proxy.URL_MAP
: el nombre del mapa de URL. Creaste el mapa de URL cuando creaste el balanceador de cargas.CERTIFICATE_NAME
: Es el nombre del certificado.
Limpia
Para revertir los cambios que realizaste en este instructivo, completa los siguientes pasos: 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) conectados directamente al proxy, el desprendimiento del mapa de certificados hace que el proxy reanude 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 separar del proxy. Primero debes al menos un certificado TLS (SSL) directamente al proxy antes puedes separar el mapa de certificados.
Para desconectar el mapa de certificados, ejecuta el siguiente comando:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-map
Reemplaza
PROXY_NAME
por el nombre del proxy de destino.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 destino. mapa de certificados.
Borra el mapa de certificados:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Reemplaza
CERTIFICATE_MAP_NAME
por el nombre del destino. mapa de certificados.Borra el certificado administrado por Google:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Reemplaza
CERTIFICATE_NAME
por el nombre del destino. certificado.Borra la autorización de DNS:
gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME
Reemplaza
AUTHORIZATION_NAME
por el nombre del destino. Autorización de DNS.