En este instructivo, se muestra cómo usar el Administrador de certificados para implementar un certificado autoadministrado global.
Los siguientes balanceadores de cargas admiten certificados autoadministrados globales:
- Balanceador de cargas de aplicaciones externo global
- Balanceador de cargas de aplicaciones clásico
- Balanceador de cargas de red del proxy externo global
- Balanceador de cargas de red del proxy clásico
Si deseas implementar en balanceadores de cargas regionales o entre regiones, consulta lo siguiente:
Objetivos
En este instructivo, se muestra cómo completar las siguientes tareas:
- Sube un certificado autoadministrado al Administrador de certificados.
- Implementa el certificado en un balanceador de cargas compatible con un proxy HTTPS de destino.
Antes de comenzar
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Certificate Manager APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Roles obligatorios
Asegúrate de tener los siguientes roles para completar las tareas de este instructivo:
Propietario del Administrador de certificados (
roles/certificatemanager.owner)Es necesario para crear y administrar recursos del Administrador de certificados.
Administrador de balanceador de cargas de Compute (
roles/compute.loadBalancerAdmin) o Administrador de red de Compute (roles/compute.networkAdmin)Es obligatorio para crear y administrar el proxy HTTPS de destino.
Para obtener más información, consulta lo siguiente:
- Roles y permisos para el Administrador de certificados.
- Roles y permisos de IAM de Compute Engine para Compute Engine
Crea el balanceador de cargas
En este instructivo, se supone que ya creaste y configuraste los backends, las verificaciones de estado, los servicios de backend y los mapas de URL del balanceador de cargas. Si creaste un balanceador de cargas de aplicaciones externo, toma nota del nombre del mapa de URLs, ya que lo necesitarás más adelante en este instructivo.
Si aún no creaste el balanceador de cargas, consulta las siguientes páginas para crear uno:
Para crear un balanceador de cargas de aplicaciones externo global, consulta Configura un balanceador de cargas de aplicaciones externo global con backends de grupos de instancias de VM.
Para crear un balanceador de cargas de aplicaciones clásico, consulta Configura un balanceador de cargas de aplicaciones clásico con un grupo de instancias administrado administrado.
Para crear un balanceador de cargas de red del proxy externo global (proxy SSL), consulta Configura un balanceador de cargas de red del proxy externo global (proxy SSL) con backends de grupos de instancias de VM.
Para crear un balanceador de cargas de red de proxy clásico (proxy SSL), consulta Configura un balanceador de cargas de red de proxy clásico (proxy SSL) con backends de grupos de instancias de VM.
Crea una clave privada y un certificado
Para crear una clave privada y un certificado, haz lo siguiente:
Usa una autoridad certificadora (AC) externa de confianza para emitir el certificado junto con su clave asociada.
Verifica que el certificado esté encadenado correctamente y que sea de confianza raíz.
Prepara los siguientes archivos codificados en PEM:
- El archivo de certificado (CRT)
- El archivo de clave privada correspondiente (KEY)
Para obtener información sobre cómo solicitar y validar un certificado, consulta Crea una clave privada y un certificado.
Sube un certificado autoadministrado al Administrador de certificados
Para subir el certificado al Administrador de certificados, haz lo siguiente:
Console
En la consola de Google Cloud , ve a la página Administrador de certificados.
En la pestaña Certificados, haz clic en Agregar certificado.
En el campo Nombre del certificado, ingresa un nombre único para el certificado.
Opcional: En el campo Descripción, ingresa una descripción para el certificado. La descripción te permite identificar el certificado.
En Ubicación, selecciona Global.
En Permiso, selecciona Predeterminado.
En Tipo de certificado, selecciona Crear certificado autoadministrado.
En el campo Certificado, haz una de las siguientes acciones:
- Haz clic en el botón Subir y selecciona el archivo de certificado con formato PEM.
- Copia y pega el contenido de un certificado con formato PEM. El contenido debe comenzar con
-----BEGIN CERTIFICATE-----y terminar con-----END CERTIFICATE-----.
En el campo certificado de clave privada, realiza una de las siguientes acciones:
- Haz clic en el botón Subir y selecciona tu clave privada. Tu clave privada debe tener el formato PEM y no estar protegida con una frase de contraseña.
- Copia y pega el contenido de una clave privada con el formato PEM. Las
claves privadas deben comenzar con
-----BEGIN PRIVATE KEY-----y terminar con-----END PRIVATE KEY-----.
En el campo Etiquetas, especifica las etiquetas que se asociarán con el certificado. Para agregar una etiqueta, haz clic en Agregar etiqueta y especifica una clave y un valor para tu etiqueta.
Haz clic en Crear.
El certificado nuevo aparecerá en la lista de certificados.
gcloud
Para crear un certificado autoadministrado 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"
Reemplaza lo siguiente:
CERTIFICATE_NAME: Es el nombre del certificado.CERTIFICATE_FILE: Es la ruta de acceso y el nombre del archivo del certificado CRT.PRIVATE_KEY_FILE: Es la ruta de acceso y el nombre del archivo de clave privada KEY.
Terraform
Para subir un certificado autoadministrado, puedes usar un
recurso google_certificate_manager_certificate con el bloque self_managed.
API
Sube el certificado realizando 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",
}
}
Reemplaza lo siguiente:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .CERTIFICATE_NAME: Es el nombre del certificado.PEM_CERTIFICATE: el PEM del certificado.PEM_KEY: Es el PEM de la clave.
Implementa el certificado autoadministrado en un balanceador de cargas
Para implementar el certificado autoadministrado global, usa un mapa de certificados.
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
Para crear un mapa de certificados, usa el comando gcloud certificate-manager maps create:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Reemplaza CERTIFICATE_MAP_NAME por el nombre del mapa de certificados
de destino.
Terraform
Para crear un mapa de certificados, puedes usar un
recurso google_certificate_manager_certificate_map.
Crea una entrada de mapa de certificados
Crea una entrada de mapa de certificados y asóciala con tu certificado y tu mapa de certificados:
gcloud
Para crear una entrada de mapa 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"
Reemplaza lo siguiente:
CERTIFICATE_MAP_ENTRY_NAME: Es el nombre de la entrada del mapa de certificados.CERTIFICATE_MAP_NAME: Es el nombre del mapa de certificados con el que se asocia la entrada del mapa de certificados.CERTIFICATE_NAME: Es el nombre del certificado que deseas asociar con la entrada del mapa de certificados.HOSTNAME: Es el nombre de host que deseas asociar a la entrada del mapa de certificados.Si deseas crear un certificado que abarque un dominio comodín y un dominio raíz, especifica el nombre de host con una raíz y un comodín, como
example.comy*.example.com. Además, debes especificar dos entradas de mapa de certificados: una paraexample.comy la otra para*.example.com.
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.
Verifica que la entrada del mapa de certificados esté activa
Verifica que la entrada de mapa de certificados esté activa antes de adjuntar tu 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"
Reemplaza lo siguiente:
CERTIFICATE_MAP_ENTRY_NAME: Es el nombre de la entrada del mapa de certificados.CERTIFICATE_NAME: Es el nombre del certificado que deseas asociar con la entrada del mapa de certificados.
El resultado es similar a lo 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
Puedes adjuntar el mapa de certificados a un proxy de destino nuevo o a uno existente.
Console
Si el proxy de destino forma parte de un balanceador de cargas existente, puedes adjuntar el mapa de certificados editando la configuración de frontend del balanceador de cargas.
En la consola de Google Cloud , ve a la página Balanceo de cargas.
Haz clic en el nombre del balanceador de cargas que deseas actualizar y, luego, en Editar.
Haz clic en Configuración de frontend y, luego, selecciona la configuración de la dirección IP y el puerto de frontend que deseas editar.
Si aparece Elegir repositorio de certificados, selecciona Usar mapa de certificados.
En la lista Selecciona un mapa de certificados, elige tu mapa de certificados.
Haz clic en Listo y, luego, en Actualizar.
gcloud
Para adjuntar el mapa de certificados a un proxy de destino nuevo, 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
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 del mapa de certificados y al certificado asociado.URL_MAP: el nombre del mapa de URLs
Para adjuntar el mapa de certificados a un proxy HTTPS de destino existente, usa el comando gcloud compute target-https-proxies update. Si no conoces el nombre del proxy de destino existente, 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 configuras un proxy de destino, si adjuntas certificados TLS (SSL) directamente y también a través de un mapa de certificados, el proxy usa los certificados a los que hace referencia el mapa de certificados y, además, ignora los certificados TLS (SSL) adjuntos directamente.
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en este instructivo, bórralos.
Borra el balanceador de cargas y sus recursos.
Borra o desconecta el mapa de certificados del proxy.
Para borrar el mapa de certificados, ejecuta el siguiente comando:
gcloud compute target-https-proxies delete PROXY_NAME
Si quieres conservar el proxy HTTPS de destino, desconecta el mapa de certificados del proxy.
- Si hay algún certificado TLS (SSL) conectado directamente al proxy, desconectar el mapa de certificados hace que el proxy reanude el uso de esos certificados TLS (SSL) conectados directamente.
- Si no hay certificados TLS (SSL) conectados directamente al proxy, no se puede desconectar el mapa de certificados del proxy. Primero, debes adjuntar al menos un certificado TLS (SSL) directamente al proxy antes de poder desconectar el mapa de certificados.
Para desconectar el mapa de certificados, ejecuta el siguiente comando:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-mapReemplaza
PROXY_NAMEpor 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.CERTIFICATE_MAP_NAME: Es el nombre del mapa de certificados.
Borra el mapa de certificados:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Reemplaza
CERTIFICATE_MAP_NAMEpor el nombre del mapa de certificados.Borra el certificado subido:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Reemplaza
CERTIFICATE_NAMEpor el nombre del certificado.