En este tutorial se muestra cómo usar Certificate Manager para desplegar un certificado regional gestionado por Google con Certificate Authority Service en un balanceador de carga de aplicaciones externo regional o en un balanceador de carga de aplicaciones interno regional.
Si quieres desplegar balanceadores de carga externos globales o balanceadores de carga entre regiones, consulta lo siguiente:
Objetivos
En este tutorial se explica cómo completar las siguientes tareas:
- Crea un certificado gestionado por Google con el Servicio de Autoridades de Certificación mediante el Administrador de certificados.
- Implementa el certificado en un balanceador de carga compatible mediante un proxy HTTPS de destino.
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
- Habilita la API de servicio de CA.
- Crea un grupo de autoridades de certificación. Debes crear y habilitar al menos una CA en este grupo de CAs.
- Los certificados que crees con el Servicio de Autoridades de Certificación no serán de confianza pública. Para emitir certificados de confianza pública, crea certificados con autorización de DNS o autorización de balanceador de carga.
Si se aplica una política de emisión de certificados al grupo de AC de destino, el aprovisionamiento de certificados puede fallar por alguno de los siguientes motivos:
- La política de emisión de certificados ha bloqueado el certificado solicitado. En este caso, no se te cobrará nada porque el certificado no se ha emitido.
- La política ha aplicado cambios al certificado que no son compatibles con Gestor de certificados. En este caso, se le cobrará porque se ha emitido el certificado, aunque no sea totalmente compatible con Gestor de certificados.
Los certificados TLS gestionados por Google que se emiten desde un grupo de CAs regionales son globales y se pueden usar en cualquier región.
Propietario de Certificate Manager (
roles/certificatemanager.owner
)Se requiere para crear y gestionar recursos de Certificate Manager.
Administrador de balanceadores de carga de Compute (
roles/compute.loadBalancerAdmin
) o Administrador de red de Compute (roles/compute.networkAdmin
)Obligatorio para crear y gestionar un proxy de destino HTTPS.
Administrador del Servicio de Autoridades de Certificación (
roles/privateca.admin
)Obligatorio para realizar acciones en el Servicio de Autoridades de Certificación.
- Roles y permisos de Certificate Manager.
- Roles y permisos de gestión de identidades y accesos de Compute Engine para Compute Engine.
- Control de acceso con gestión de identidades y accesos para Servicio de Autoridades de Certificación.
Para crear un balanceador de carga de aplicación externo regional, consulta Configurar un balanceador de carga de aplicación externo regional con back-ends de grupo de instancias de máquina virtual.
Para crear un balanceador de carga de aplicación interno regional, consulta Configurar un balanceador de carga de aplicación interno regional con backends de grupos de instancias de máquina virtual.
En el proyecto de destino, Google Cloud crea una cuenta de servicio de Certificate Manager:
gcloud beta services identity create --service=certificatemanager.googleapis.com \ --project=PROJECT_ID
Sustituye
PROJECT_ID
por el ID del proyecto de destinoGoogle Cloud .El comando devuelve el nombre de la identidad de servicio creada. Consulta el siguiente ejemplo:
service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
Asigna el rol Solicitante del certificado del Servicio de Autoridades de Certificación (
roles/privateca.certificateRequester
) a la cuenta de servicio de Certificate Manager en el grupo de AC de destino:gcloud privateca pools add-iam-policy-binding CA_POOL \ --location LOCATION \ --member "serviceAccount:SERVICE_ACCOUNT" \ --role roles/privateca.certificateRequester
Haz los cambios siguientes:
CA_POOL
: el ID del grupo de autoridades de certificación de destino.LOCATION
: la ubicación de destino. Google CloudSERVICE_ACCOUNT
: el nombre completo de la cuenta de servicio que has creado en el paso 1.
Crea un recurso de configuración de emisión de certificados para tu grupo de autoridades de certificación:
Consola
En la consola, ve a la pestaña Configs de emisión de la página Gestor de certificados. Google Cloud
Haz clic en Crear. Se mostrará la página Create a Certificate Issuance Config (Crear una configuración de emisión de certificados).
En el campo Name (Nombre), introduce un nombre único para la configuración de emisión del certificado.
Opcional: En el campo Descripción, escribe una descripción de la configuración de emisión.
En Ubicación, selecciona Regional.
En Región, selecciona la misma región que tu certificado y tu grupo de ACs.
Opcional: En el campo Tiempo de vida, especifica el tiempo de vida del certificado emitido en días. El valor debe estar entre 21 y 30 días (ambos incluidos).
Opcional: En Porcentaje de la ventana de rotación, especifica el porcentaje del tiempo de validez del certificado en el que se iniciará el proceso de renovación. Para consultar el intervalo de valores válidos, consulta Ventana de tiempo de vida y rotación (porcentaje).
Opcional: En la lista Algoritmo de clave, seleccione el algoritmo de clave que quiera usar al generar la clave privada.
En la lista Grupo de ACs, selecciona el nombre del grupo de ACs que quieras asignar a este recurso de configuración de emisión de certificados.
En el campo Etiquetas, especifica las etiquetas que quieras asociar al certificado. Para añadir una etiqueta, haga clic en
Añadir etiqueta y especifique una clave y un valor para la etiqueta.Haz clic en Crear.
gcloud
gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \ --ca-pool=CA_POOL \ --location=LOCATION
Haz los cambios siguientes:
ISSUANCE_CONFIG_NAME
: el nombre del recurso de configuración de emisión del certificado.CA_POOL
: la ruta y el nombre completos del recurso de grupo de AC que quieras asignar a este recurso de configuración de emisión de certificados.LOCATION
: la ubicación de destino. Google Cloud Debes especificar la misma ubicación que el grupo de AC y el certificado.
Para obtener más información sobre los recursos de configuración de emisión de certificados, consulta Gestionar recursos de configuración de emisión de certificados.
En la Google Cloud consola, ve a la página Gestor de certificados.
En la pestaña Certificados, haz clic en Añadir certificado.
En el campo Nombre del certificado, introduce un nombre único para el certificado.
Opcional: En el campo Descripción, escribe una descripción del certificado. La descripción te permite identificar el certificado.
En Ubicación, selecciona Regional.
En la lista Región, selecciona tu región.
En Tipo de certificado, selecciona Crear certificado gestionado por Google.
En Tipo de autoridad de certificación, selecciona Privada.
En el campo Domain Names (Nombres de dominio), especifique una lista de nombres de dominio del certificado delimitados por comas. Cada nombre de dominio debe ser un nombre de dominio completo, como
myorg.example.com
.En Select a certificate issuance config (Seleccionar una configuración de emisión de certificados), selecciona el nombre del recurso de configuración de emisión de certificados que haga referencia al grupo de ACs de destino.
En el campo Etiquetas, especifica las etiquetas que quieras asociar al certificado. Para añadir una etiqueta, haz clic en
Añadir etiqueta y especifica una clave y un valor para la etiqueta.Haz clic en Crear.
El nuevo certificado aparece en la lista de certificados.
CERTIFICATE_NAME
: el nombre del certificado.DOMAIN_NAME
: el nombre del dominio de destino. El nombre de dominio debe ser un nombre de dominio completo, comomyorg.example.com
.ISSUANCE_CONFIG_NAME
: el nombre del recurso de configuración de emisión de certificados que hace referencia al grupo de ACs de destino.LOCATION
: la ubicación de destino. Google Cloud Debe especificar la misma ubicación que el grupo de AC, el recurso de configuración de emisión de certificados y el certificado gestionado.PROJECT_ID
: el ID del Google Cloud proyecto.LOCATION
: la ubicación de destino. Google Cloud Debe especificar la misma ubicación que el grupo de AC, el recurso de configuración de emisión de certificados y el certificado gestionado.CERTIFICATE_NAME
: el nombre del certificado.DOMAIN_NAME
: el nombre del dominio de destino. El nombre de dominio debe ser un nombre de dominio completo, comomyorg.example.com
.ISSUANCE_CONFIG_NAME
: el nombre del recurso de configuración de emisión de certificados que hace referencia al grupo de ACs de destino.En la Google Cloud consola, ve a la página Gestor de certificados.
En la pestaña Certificados, consulta la columna Estado del certificado.
CERTIFICATE_NAME
: el nombre del certificado.LOCATION
: la ubicación de destino Google Cloud donde has creado el certificado gestionado por Google.PROXY_NAME
: el nombre del proxy de destino.CERTIFICATE_NAME
: el nombre del certificado.URL_MAP
: nombre del mapa de URLs. Creaste el mapa de URLs al crear el balanceador de carga.LOCATION
: la ubicación de destino Google Cloud donde quieres crear el proxy HTTPS de destino.Elimina el balanceador de carga y sus recursos.
Consulta Limpiar la configuración de un balanceador de carga.
Elimina el certificado gestionado por Google:
Consola
En la Google Cloud consola, ve a la página Gestor de certificados.
En la pestaña Certificados, marca la casilla del certificado.
Haz clic en Eliminar.
En el cuadro de diálogo que aparece, haz clic en Eliminar para confirmar la acción.
gcloud
gcloud certificate-manager certificates delete CERTIFICATE_NAME \ --location=LOCATION
Haz los cambios siguientes:
CERTIFICATE_NAME
: el nombre del certificado.LOCATION
: la ubicación de destino. Google Cloud
Elimina el recurso de configuración de emisión de certificados:
Consola
En la Google Cloud consola, vaya a la pestaña Configuraciones de emisión de la página Gestor de certificados.
Seleccione la casilla del recurso de configuración de emisión que quiera eliminar.
Haz clic en Eliminar.
En el cuadro de diálogo que aparece, haz clic en Eliminar para confirmar la acción.
gcloud
gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME \ --location=LOCATION
Haz los cambios siguientes:
ISSUANCE_CONFIG_NAME
: el nombre del recurso de configuración de emisión de certificados que hace referencia al grupo de ACs de destino.LOCATION
: la ubicación de destino. Google Cloud
Elimina el grupo de ACs.
Para eliminar el grupo de AC o inhabilitar la última AC habilitada de un grupo de AC al que haga referencia una configuración de emisión de certificados, elimina todas las configuraciones de emisión de certificados que hagan referencia al grupo de AC. Para obtener más información, consulta Eliminar un grupo de CAs.
Antes de seguir los pasos de este tutorial, debes tener en cuenta lo siguiente:
Roles obligatorios
Asegúrate de que tienes los siguientes roles para completar las tareas de este tutorial:
Para obtener más información, consulta las siguientes secciones:
Crear el balanceador de carga
En este tutorial se presupone que ya has creado y configurado los backends, las comprobaciones de estado, los servicios de backend y los mapas de URLs del balanceador de carga. Anota el nombre del mapa de URLs, ya que lo necesitarás más adelante en este tutorial.
Configurar la integración del Servicio de Autoridades de Certificación con el Administrador de certificados
Para integrar el servicio de CA con Certificate Manager, sigue estos pasos:
Crear un certificado gestionado por Google emitido por tu instancia del Servicio de Autoridades de Certificación
Para crear un certificado gestionado por Google emitido por tu instancia del Servicio de Autoridades de Certificación, haz lo siguiente:
Consola
gcloud
Para crear un certificado gestionado por Google regional con Servicio de Autoridades de Certificación, usa el comando certificate-manager certificates create
con la marca issuance-config
:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES" \ --issuance-config="ISSUANCE_CONFIG_NAME" \ --location="LOCATION"
Haz los cambios siguientes:
API
Para crear el certificado, haz una solicitud POST
al método certificates.create
de la siguiente manera:
POST /v1/projects/PROJECT_ID/locations/LOCATION/certificates?certificate_id=CERTIFICATE_NAME" { name: "/projects/example-project/locations/LOCATION/certificates/my-cert", "managed": { "domains": ["DOMAIN_NAME"], "issuanceConfig": "ISSUANCE_CONFIG_NAME", }, }
Haz los cambios siguientes:
Verificar el estado del certificado
Antes de implementar un certificado en un balanceador de carga, comprueba que esté activo. El estado del certificado puede tardar varios minutos en cambiar a ACTIVE
.
Consola
gcloud
Para verificar el estado del certificado, ejecuta el siguiente comando:
gcloud certificate-manager certificates describe CERTIFICATE_NAME \ --location=LOCATION
Haz los cambios siguientes:
El resultado debería ser 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/LOCATION/issuanceConfigs/myissuanceConfig state: ACTIVE name: projects/myproject/locations/LOCATION/certificates/mycertificate pemCertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
Para ver más pasos para solucionar problemas, consulta Solucionar problemas de Gestor de certificados.
Desplegar el certificado gestionado por Google regional en un balanceador de carga
Para implementar el certificado regional gestionado por Google, adjúntalo directamente al proxy de destino.
Adjuntar el certificado directamente al proxy de destino
Puede adjuntar el certificado a un proxy de destino nuevo o a uno que ya tenga.
Para adjuntar el certificado a un nuevo proxy de destino, usa el gcloud compute
target-https-proxies create
comando:
gcloud compute target-https-proxies create PROXY_NAME \ --certificate-manager-certificates=CERTIFICATE_NAME \ --url-map=URL_MAP \ --region=LOCATION
Haz los cambios siguientes:
Para adjuntar un certificado a un proxy HTTPS de destino, usa el gcloud
compute target-https-proxies update
comando. Si no sabes el nombre del proxy de destino, ve a la página Proxies de destino y anota el nombre del proxy de destino.
gcloud compute target-https-proxies update PROXY_NAME \ --region=LOCATION \ --certificate-manager-certificates=CERTIFICATE_NAME
Después de crear o actualizar el proxy de destino, ejecuta el siguiente comando para verificarlo:
gcloud compute target-https-proxies list
Solucionar problemas con certificados emitidos por el Servicio de Autoridades de Certificación
Para ver los pasos para solucionar problemas, consulta Problemas relacionados con los certificados emitidos por una instancia del servicio de CA.
Limpieza
Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en este tutorial, elimínalos.