Solicita un certificado con Public CA y un cliente de ACME
En este instructivo, se explica cómo solicitar un certificado TLS con Public Certificate Authority mediante Google Cloud CLI. Para obtener información sobre las CAs raíz e intermedias que usa Public Certificate Authority, consulta Google Trust Services. No se cobra por solicitar certificados de Public CA.
Antes de comenzar
Instala la Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:
gcloud initSi usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crea un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos
(
roles/resourcemanager.projectCreator), que contiene elresourcemanager.projects.createpermiso. Obtén información para otorgar roles.
-
Crea un proyecto de: Google Cloud
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el Google Cloud proyecto de que estás creando. -
Selecciona el Google Cloud proyecto de que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu Google Cloud proyecto de.
Asegúrate de tener el rol de IAM de creador de claves de cuentas externas de la Public CA (
roles/publicca.externalAccountKeyCreator).Para otorgar este rol, ejecuta el siguiente comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:USER \ --role=roles/publicca.externalAccountKeyCreator
Reemplaza lo siguiente:
PROJECT_ID: es el ID del Google Cloud proyecto de .USER: Es el identificador único del usuario al que deseas asignar el rol de IAM.
Para obtener información sobre cómo otorgar un rol de IAM, consulta Administración del acceso a proyectos, carpetas y organizaciones.
Habilita la API de la CA pública:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene elserviceusage.services.enablepermiso. Obtén información para otorgar roles.gcloud services enable publicca.googleapis.com
Instala un cliente
Para comenzar a usar Public CA, debes instalar un cliente de ACME. En las siguientes instrucciones, se usa Certbot como cliente de ACME. Puedes usar cualquier otro cliente de ACME si el cliente admite la vinculación de cuentas externas (EAB).
Para instalar Certbot, consulta las instrucciones de Certbot.
Asegúrate de dirigir tu cliente al servidor de la Public CA. La primera vez que el cliente de ACME interactúa con Public CA, el cliente genera un par de claves nuevo y envía la clave pública a Public CA.
Solicita un ID de clave EAB y HMAC
Después de instalar un cliente de ACME, debes registrar tu cuenta de ACME con Public CA para solicitar certificados de Public CA. Un secreto de EAB puede ayudarte a registrar tu cuenta de ACME con la Public CA. Un secreto de EAB consta de un ID de clave y un código de autenticación de mensajes basado en hash (HMAC).
Puedes usar la API de Public CA o la Google Cloud CLI para solicitar un secreto de EAB.
Para solicitar un ID de clave EAB y HMAC, ejecuta el siguiente comando:
gcloud publicca external-account-keys create
Este comando devuelve un secreto de EAB que es válido en el entorno de producción de Public CA. En el cuerpo de la respuesta, el campo keyId contiene el ID de clave EAB y el campo b64MacKey contiene el HMAC EAB.
Debes usar un secreto de EAB en un plazo de 7 días después de obtenerlo. El secreto de EAB se invalida si no lo usas en un plazo de 7 días. La cuenta de ACME registrada con un secreto de EAB no tiene fecha de vencimiento.
Registra una cuenta de ACME
En esta sección, se explica cómo registrar una cuenta de ACME con la Public CA proporcionando el secreto de EAB que acabas de obtener.
Usa un cliente de ACME normal para registrar una cuenta de ACME y proporciona el ID de clave EAB y HMAC durante el registro.
Para registrar una cuenta de ACME con la Public CA y vincular la cuenta de ACME al Google Cloud proyecto que usaste para solicitar el secreto de EAB, ejecuta el siguiente comando:
certbot register \
--email "EMAIL_ADDRESS" \
--no-eff-email \
--server "SERVER" \
--eab-kid "EAB_KID" \
--eab-hmac-key "EAB_HMAC_KEY"
Reemplaza lo siguiente:
EMAIL_ADDRESS: tu dirección de correo electrónicoSERVER: la URL del directorio de ACME para el entorno de producción o de etapa de pruebasEAB_KID: el ID de clave EABEAB_HMAC_KEY: la clave HMAC EAB
En la siguiente tabla, se proporciona la descripción y la URL del directorio de ACME para el entorno de producción y de etapa de pruebas:
| Entorno | Descripción | URL del directorio de ACME |
|---|---|---|
| Producción | El entorno de producción te permite obtener certificados de confianza pública. | https://dv.acme-v02.api.pki.goog/directory |
| Etapa de pruebas | El entorno de etapa de pruebas devuelve certificados que no son de confianza pública. El entorno de etapa de pruebas realiza las mismas verificaciones de validación que el entorno de producción Puedes usar el entorno de etapa de pruebas para la integración o cualquier otro tipo de prueba. | https://dv.acme-v02.test-api.pki.goog/directory |
Solo puedes registrar una cuenta de ACME con un secreto de EAB. Después de registrar una cuenta de ACME con un secreto de EAB, el secreto de EAB deja de ser válido y no puedes volver a usarlo. Si deseas registrar varias cuentas de ACME, debes solicitar un secreto de EAB único para cada una de las cuentas.
Solicita certificados
Después de que la Public CA valide tu control del destino del certificado y reconozca que tu cliente de ACME funciona como se espera para realizar operaciones de administración de certificados, puedes usar los flujos de trabajo de ACME normales para solicitar, renovar y revocar certificados. Puedes realizar estas operaciones con tu cliente de ACME. Para solicitar y renovar un certificado, debes completar un desafío de ACME, como el desafío manual de DNS.
Para usar el desafío manual de DNS para solicitar un certificado, ejecuta el siguiente comando:
certbot certonly \
--manual \
--preferred-challenges "dns-01" \
--server "SERVER" \
--domains "DOMAINS"
Reemplaza lo siguiente:
SERVER: la URL del directorio de ACME para el entorno de producción o de etapa de pruebasDOMAINS: una lista de dominios separados por comas para los que solicitas certificados
Limpia
Si ya no necesitas certificados para tus dominios, borra el proyecto que creaste.
Etapa de pruebas
Puedes usar el entorno de etapa de pruebas de la Public CA para solicitar certificados con fines de prueba. Los certificados emitidos por la cadena del entorno de etapa de pruebas hasta una CA raíz de prueba. Los navegadores o cualquier otro cliente que no se haya configurado para confiar en el certificado raíz de etapa de pruebas no confiarán en los certificados del entorno de etapa de pruebas. Para obtener un secreto de EAB que sea válido en el entorno de etapa de pruebas, anula el extremo de API para usar el endpoint del entorno de etapa de pruebas:
gcloud config set api_endpoint_overrides/publicca https://preprod-publicca.googleapis.com/
gcloud publicca external-account-keys create
gcloud config unset api_endpoint_overrides/publicca
Borra un Google Cloud proyecto de:
gcloud projects delete PROJECT_ID