En este tutorial se muestra cómo usar Certificate Manager para desplegar un certificado autogestionado global.
Los siguientes balanceadores de carga admiten certificados autogestionados globales:
- Balanceador de carga de aplicación externo global
- Balanceador de carga de aplicación clásico
- Balanceador de carga de red con proxy externo global
- Balanceador de carga de red de proxy clásico
Si quieres implementar balanceadores de carga regionales o entre regiones, consulta lo siguiente:
Objetivos
En este tutorial se explica cómo completar las siguientes tareas:
- Sube un certificado autogestionado a Certificate Manager.
- 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 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 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
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.
- Roles y permisos de Certificate Manager.
- Roles y permisos de gestión de identidades y accesos de Compute Engine para Compute Engine.
Para crear un balanceador de carga de aplicación externo global, consulta Configurar un balanceador de carga de aplicación externo global con back-ends de grupo de instancias de máquina virtual.
Para crear un balanceador de carga de aplicación clásico, consulta Configurar un balanceador de carga de aplicación clásico con un backend de grupo de instancias gestionado.
Para crear un balanceador de carga de red con proxy externo global (proxy SSL), consulta Configurar un balanceador de carga de red con proxy externo global (proxy SSL) con back-ends de grupo de instancias de máquina virtual.
Para crear un balanceador de carga de red de proxy clásico (proxy SSL), consulta Configurar un balanceador de carga de red de proxy clásico (proxy SSL) con back-ends de grupo de instancias de VM.
Usa una autoridad de certificación (CA) de terceros de confianza para emitir el certificado junto con su clave asociada.
Verifica que el certificado esté encadenado correctamente y que la raíz sea de confianza.
Prepara los siguientes archivos codificados en PEM:
- El archivo de certificado (CRT)
- El archivo de clave privada correspondiente (KEY)
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 Global.
En Ámbito, selecciona Predeterminado.
En Tipo de certificado, selecciona Crear certificado autogestionado.
En el campo Certificado, haz una de las siguientes acciones:
- Haz clic en el botón Subir y selecciona el archivo de certificado en formato PEM.
- Copia y pega el contenido de un certificado en formato PEM. El contenido debe empezar por
-----BEGIN CERTIFICATE-----
y terminar por-----END CERTIFICATE-----
.
En el campo Certificado de clave privada, haz una de las siguientes acciones:
- Haz clic en el botón Subir y selecciona tu clave privada. Tu clave privada debe tener formato PEM y no estar protegida con una contraseña.
- Copia y pega el contenido de una clave privada con formato PEM. Las claves privadas deben empezar por
-----BEGIN PRIVATE KEY-----
y terminar por-----END PRIVATE KEY-----
.
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.CERTIFICATE_FILE
: la ruta y el nombre del archivo de certificado CRT.PRIVATE_KEY_FILE
: la ruta y el nombre de archivo de la clave privada KEY.PROJECT_ID
: el ID del Google Cloud proyecto.CERTIFICATE_NAME
: el nombre del certificado.PEM_CERTIFICATE
: el PEM del certificado.PEM_KEY
: el PEM de la clave.CERTIFICATE_MAP_ENTRY_NAME
: el nombre de la entrada del mapa de certificados.CERTIFICATE_MAP_NAME
: el nombre del mapa de certificados al que está adjunta la entrada del mapa de certificados.CERTIFICATE_NAME
: el nombre del certificado que quieres asociar a la entrada del mapa de certificados.HOSTNAME
: el nombre de host que quieras asociar a la entrada del mapa de certificados.Si quieres crear un certificado que cubra tanto un dominio comodín como un dominio raíz, especifica el nombre de host con un dominio raíz y un comodín, como
example.com
y*.example.com
. Además, debes especificar dos entradas de mapa de certificados: una paraexample.com
y otra para*.example.com
.CERTIFICATE_MAP_ENTRY_NAME
: el nombre de la entrada del mapa de certificados.CERTIFICATE_NAME
: el nombre del certificado que quieres asociar a la entrada del mapa de certificados.PROXY_NAME
: el nombre del proxy de destino.CERTIFICATE_MAP_NAME
: el nombre del mapa de certificados que hace referencia a la entrada del mapa de certificados y al certificado asociado.URL_MAP
: nombre del mapa de URLs.Elimina el balanceador de carga y sus recursos.
Consulta Limpiar la configuración de un balanceador de carga.
Elimina o separa el mapa de certificados del proxy.
Para eliminar el mapa de certificados, ejecuta el siguiente comando:
gcloud compute target-https-proxies delete PROXY_NAME
Si quieres conservar el proxy HTTPS de destino, separa el mapa de certificados del proxy. Antes de separar el mapa de certificados, ten en cuenta lo siguiente:
- Si hay algún certificado TLS (SSL) adjunto directamente al proxy, al separar el mapa de certificados, el proxy volverá a usar esos certificados TLS (SSL) adjuntos directamente.
- Si no hay certificados TLS (SSL) adjuntos directamente al proxy, el mapa de certificados no se puede separar 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
Sustituye
PROXY_NAME
por el nombre del proxy de destino.Elimina la entrada del mapa de certificados del mapa de certificados:
gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Haz los cambios siguientes:
CERTIFICATE_MAP_ENTRY_NAME
: el nombre de la entrada del mapa de certificados.CERTIFICATE_MAP_NAME
: el nombre del mapa de certificados.
Elimina el mapa de certificados:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Sustituye
CERTIFICATE_MAP_NAME
por el nombre del mapa de certificados.Elimina el certificado subido:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Sustituye
CERTIFICATE_NAME
por el nombre del certificado.
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. Si has creado un balanceador de carga de aplicaciones externo, anota el nombre del mapa de URLs, ya que lo necesitarás más adelante en este tutorial.
Si no has creado el balanceador de carga, consulta las siguientes páginas para crear uno:
Crear una clave privada y un certificado
Para crear una clave privada y un certificado, sigue estos pasos:
Para obtener información sobre cómo solicitar y validar un certificado, consulta Crear una clave privada y un certificado.
Subir un certificado autogestionado a Certificate Manager
Para subir el certificado al administrador de certificados, haz lo siguiente:
Consola
gcloud
Para crear un certificado autogestionado global, usa el comando certificate-manager certificates create
:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --certificate-file="CERTIFICATE_FILE" \ --private-key-file="PRIVATE_KEY_FILE"
Haz los cambios siguientes:
Terraform
Para subir un certificado autogestionado, puedes usar un recurso google_certificate_manager_certificate
con el bloque self_managed
.
API
Sube el certificado haciendo una solicitud POST
al método certificates.create
de la siguiente manera:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME { self_managed: { pem_certificate: "PEM_CERTIFICATE", pem_private_key: "PEM_KEY", } }
Haz los cambios siguientes:
Desplegar el certificado autogestionado en un balanceador de carga
Para desplegar el certificado autogestionado global, usa un mapa de certificados.
Crear un mapa de certificados
Crea un mapa de certificados que haga referencia a la entrada de mapa de certificados asociada a tu certificado:
gcloud
Para crear un mapa de certificados, usa el comando gcloud certificate-manager maps create
:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Sustituye CERTIFICATE_MAP_NAME
por el nombre del mapa de certificados de destino.
Terraform
Para crear un mapeado de certificados, puedes usar un recurso google_certificate_manager_certificate_map
.
Crear una entrada de mapa de certificados
Crea una entrada de mapa de certificados y asóciala a tu certificado y a tu mapa de certificados:
gcloud
Para crear una entrada de mapeado de certificados, usa el comando gcloud certificate-manager maps entries create
:
gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME" \ --certificates="CERTIFICATE_NAME" \ --hostname="HOSTNAME"
Haz los cambios siguientes:
Terraform
Para crear una entrada de mapa de certificados con un dominio raíz, usa un recurso google_certificate_manager_certificate_map_entry
.
Para crear una entrada de mapa de certificados con un dominio comodín, usa un recurso google_certificate_manager_certificate_map_entry
.
Verificar que la entrada de mapa de certificados esté activa
Verifica que la entrada del mapa de certificados esté activa antes de adjuntar el mapa de certificados correspondiente al proxy de destino.
Para verificar la entrada del mapa de certificados, usa el comando gcloud certificate-manager maps entries describe
:
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Haz los cambios siguientes:
El resultado debería ser 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
Puede adjuntar el mapa de certificados a un proxy de destino nuevo o a uno que ya tenga.
gcloud
Para adjuntar el mapa de certificados a un nuevo proxy de destino, usa el comando gcloud compute target-https-proxies create
:
gcloud compute target-https-proxies create PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --url-map="URL_MAP" \ --global
Haz los cambios siguientes:
Para adjuntar el mapa de certificados a un proxy HTTPS de destino, usa el comando gcloud compute target-https-proxies update
. 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 \ --certificate-map="CERTIFICATE_MAP_NAME" \ --global
Después de crear o actualizar el proxy de destino, ejecuta el siguiente comando para verificarlo:
gcloud compute target-https-proxies list
Terraform
Para adjuntar el mapa de certificados al proxy de destino, puedes usar un recurso google_compute_target_https_proxy
.
Cuando configures un proxy de destino, si adjuntas certificados TLS (SSL) directamente y también a través de un mapa de certificados, el proxy usará los certificados a los que haga referencia el mapa de certificados e ignorará los certificados TLS (SSL) adjuntos directamente.
Limpieza
Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en este tutorial, elimínalos.