En este instructivo, se explica el proceso de implementación de certificados mediante un certificado administrado por Google con Certificate Authority Service como ejemplo.
Los siguientes balanceadores de cargas admiten certificados administrados por Google con el servicio de CA:
- 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
Si una política de emisión de certificados está vigente En el grupo de AC de destino, el aprovisionamiento de certificados puede fallar por uno de los siguientes motivos:
- La política de emisión de certificados bloqueó el certificado solicitado. En este caso, no se te facturará porque el certificado no se emitió.
- La política aplicó cambios al certificado que no son compatibles con el Administrador de certificados. En este caso, se te seguirá facturando desde que se emitió el certificado, incluso si no es totalmente compatible con el Administrador de certificados.
Los certificados emitidos mediante los pasos de este instructivo no son de confianza pública. Si quieres emiten certificados que son de confianza pública, en su lugar, sigue los pasos de uno de los siguientes instructivos:
- Implementa un certificado administrado por Google con autorización de DNS (instructivo)
- Implementa un certificado administrado por Google con autorización del balanceador de cargas (instructivo)
Si quieres migrar un certificado existente al Administrador de certificados, sigue sigue los pasos en Migra certificados al Administrador de certificados.
Ten en cuenta que, aunque uses un grupo de AC regional para emitir un TLS, el certificado en sí es global y se puede usar en cualquier región.
Objetivos
En este instructivo, se muestra cómo completar las siguientes tareas:
- Crea un certificado administrado por Google con CA Service con el Administrador de certificados.
- Implementar el certificado en un balanceador de cargas compatible con 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
-
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 de Certificate Manager: Es obligatorio para crear y administrar recursos de Certificate Manager.
- Administrador del balanceador de cargas de Compute o Administrador de red de Compute: Es obligatorio para crear y administrar un proxy de destino HTTPS.
- Administrador de Certificate Authority Service:Es obligatorio para realizar acciones en el servicio de CA.
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
- Permisos y roles del servicio de AC
Crea un grupo de CA. Debes crear y habilitar al menos una AC en este grupo de AC.
Configura la integración de CA Service con el Administrador de certificados
Configura el Administrador de certificados para que se integre con el Servicio de CA de la siguiente manera:
Usa el siguiente comando para crear una cuenta de servicio del Administrador de certificados en el proyecto de Google Cloud de destino:
gcloud beta services identity create --service=certificatemanager.googleapis.com \ --project=PROJECT_ID
Reemplaza
PROJECT_ID
por el ID del proyecto de Google Cloud de destino.El comando muestra el nombre de la identidad de servicio creada. Consulta el siguiente ejemplo:
service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
Otorga a la cuenta de servicio Administrador de certificados el rol de solicitante de certificados dentro de al grupo de AC de destino de la siguiente manera:
gcloud privateca pools add-iam-policy-binding CA_POOL \ --location REGION \ --member "serviceAccount:SERVICE_ACCOUNT" \ --role roles/privateca.certificateRequester
Reemplaza lo siguiente:
CA_POOL
: Es el ID del grupo de AC de destino.REGION
: Es la región de Google Cloud de destino.SERVICE_ACCOUNT
: Es el nombre completo de la cuenta de servicio que creaste en el paso 1.
Crea un recurso de configuración de emisión de certificados para tu grupo de AC:
gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \ --ca-pool=CA_POOL \ [--lifetime=CERTIFICATE_LIFETIME] \ [--rotation-window-percentage=ROTATION_WINDOW_PERCENTAGE] \ [--key-algorithm=KEY_ALGORITHM]
Reemplaza lo siguiente:
ISSUANCE_CONFIG_NAME
: Es el nombre único del recurso de configuración de emisión de certificados.CA_POOL
: Es la ruta de acceso completa del recurso y el nombre del grupo de AC que deseas asignar a este recurso de configuración de emisión de certificados.CERTIFICATE_LIFETIME
: Es la vida útil del certificado en días. Los valores válidos son de 21 a 30 días en formato de duración estándar. El valor predeterminado es de 30 días (30D
). Esta configuración es opcional.ROTATION_WINDOW_PERCENTAGE
: Es el porcentaje de la vida útil del certificado en el que se activa una renovación. Este parámetro de configuración es opcional.El valor predeterminado es del 66%. Debes establecer el porcentaje del período de rotación en relación con la vida útil del certificado para que la renovación del certificado se produzca al menos 7 días después de su emisión y al menos 7 días antes de su vencimiento.
KEY_ALGORITHM
: El algoritmo de encriptación que se usa para generar la clave privada. Los valores válidos sonecdsa-p256
orsa-2048
. El valor predeterminado esrsa-2048
. Esta configuración es opcional.
Para obtener más información sobre los parámetros de configuración de emisión de certificados, consulta Administra los parámetros de configuración de emisión de certificados.
Crea un certificado administrado por Google emitido por tu instancia de CA Service
Crea un certificado administrado por Google emitido por tu instancia de CA Service de la siguiente manera:
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, elige Privada.
Especifica los nombres de dominio del certificado. Ingresa un valor lista de los dominios de destino. Además, cada nombre de dominio debe ser un nombre de dominio, como
myorg.example.com
.En Certificate Esuance Config, selecciona el nombre del certificado. recurso de configuración de emisión que hace referencia al grupo de AC objetivo.
Especifica una etiqueta para asociarla al certificado. Si es necesario, puedes agregar más de una etiqueta. 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 o un balanceador de cargas de red de proxy externo global:
Ejecuta el siguiente comando:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES" \ --issuance-config=ISSUANCE_CONFIG_NAME
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
.ISSUANCE_CONFIG_NAME
: Es el nombre del recurso de configuración de emisión de certificados que hace referencia al grupo de AC de destino.
Para un balanceador de cargas de aplicaciones interno entre regiones:
Ejecuta el siguiente comando:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES" \ --issuance-config=ISSUANCE_CONFIG_NAME \ --scope=all-regions
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
.ISSUANCE_CONFIG_NAME
: Es el nombre del recurso de configuración de emisión de certificados que hace referencia al grupo de AC de destino.
API
Crea el certificado mediante una solicitud POST
al certificates.create
de la siguiente manera:
Para un balanceador de cargas de aplicaciones externo global, un balanceador de cargas de aplicaciones clásico o un balanceador de cargas de red del proxy externo global:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME" { "managed": { "domains": ["DOMAIN_NAME"], "issuanceConfig": "ISSUANCE_CONFIG_NAME", } }
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto de Google Cloud de destino.CERTIFICATE_NAME
: Es un nombre único del 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
.ISSUANCE_CONFIG_NAME
: Es el nombre del recurso de configuración de emisión de certificados que hace referencia al grupo de AC de destino.
Para un balanceador de cargas de aplicaciones interno entre regiones:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME" { "managed": { "domains": ["DOMAIN_NAME"], "issuanceConfig": "ISSUANCE_CONFIG_NAME", "scope": "ALL_REGIONS" } }
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto de Google Cloud de destino.CERTIFICATE_NAME
: Es un nombre único del 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
.ISSUANCE_CONFIG_NAME
: Es el nombre del recurso de configuración de emisión de certificados que hace referencia al grupo de AC de destino.
Para obtener una descripción general del proceso de implementación de certificados, consulta Descripción general de la implementación.
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 varios minutos hasta que
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:
createTime: '2021-10-20T12:19:53.370778666Z' expireTime: '2022-05-07T05:03:49Z' managed: domains: - myorg.example.com issuanceConfig: projects/myProject/locations/global/certificateIssuanceConfigs/myIssuanceConfig 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 certificado administrado por Google en un balanceador de cargas.
Antes de continuar con las tareas de esta sección, asegúrate de haber completado las que se enumeran en las secciones Configura la integración de CA Service con Certificate Manager y Crea un certificado administrado por Google emitido por tu instancia de CA Service.
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, adjúntalo directamente al proxy de destino para implementar el certificado.
Implementa el certificado usando un mapa de certificados
En esta sección, se describen los pasos para implementar un certificado con un mapa de certificados.
Crea un mapa de certificados
Crea un mapa de certificados que hará referencia a la entrada del mapa del certificado asociado con tu certificado:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Reemplaza CERTIFICATE_MAP_NAME
por el nombre del mapa de certificados de destino.
Crea una entrada de mapa de certificados
Crea una entrada de mapa de certificados. y asócialo con tu certificado y tu mapa de certificados:
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 certificado al que se asignará el certificado. esta entrada del mapa de certificados adjuntaCERTIFICATE_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
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 al que se asignará el certificado. 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:
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
: Es el nombre del proxy de destino.CERTIFICATE_MAP_NAME
: Es el nombre del mapa de certificados que hace referencia a la entrada de tu mapa de certificados y a su certificado asociado.
Si hay certificados TLS (SSL) existentes adjuntos directamente al proxy, este le da preferencia 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.
Soluciona problemas
Si quieres conocer los pasos para solucionar problemas, consulta Problemas relacionados con certificados emitidos por una instancia del Servicio de CA.
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) adjuntos directamente al proxy, separar el mapa de certificados hace que el proxy reanude el uso directo certificados TLS (SSL) adjuntos.
- Si no había certificados TLS (SSL) adjuntos directamente al proxy, la asignación de certificados no se puede desvincular del proxy. Primero, debes adjuntar al menos un certificado TLS (SSL) directamente al proxy para poder desconectar 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
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 de la 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 destino. mapa de certificados.Borra el certificado administrado por Google:
Console
En la consola de Google Cloud, ve a la página Administrador de certificados.
En la pestaña Certificados, selecciona la casilla de verificación de la certificado.
Haz clic en Borrar.
En el cuadro de diálogo que aparece, haz clic en Borrar para confirmar.
gcloud
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Reemplaza
CERTIFICATE_NAME
por el nombre del destino. certificado.Borra el recurso de configuración de emisión de certificados:
Console
En la consola de Google Cloud, ve a la página Administrador de certificados.
En la pestaña Issuance Configs, selecciona la casilla de verificación de la configuración de emisión.
Haz clic en Borrar.
En el cuadro de diálogo que aparece, haz clic en Borrar para confirmar.
gcloud
gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
Reemplaza
ISSUANCE_CONFIG_NAME
por el nombre del destino. recurso de configuración de emisión de certificados.Borra el grupo de AC como se describe en Cómo borrar un grupo de AC.
Ten en cuenta que, para inhabilitar la última AC que habilitaste en el grupo de AC al que se hace referencia en la configuración de emisión de certificados, o para borrar el grupo de AC al que se hace referencia por completo, primero debes borrar cada configuración de emisión de certificados que haga referencia a ese grupo de AC.