Solicita un certificado con una AC pública y un cliente ACME

En este instructivo, se explica cómo solicitar un certificado TLS con Public Certificate Authority con Google Cloud CLI. Para obtener información sobre las AC raíz y intermedias que usa la AC pública, consulta Google Trust Services. No se cobra ninguna tarifa por solicitar certificados de la AC pública.

Antes de comenzar

  • Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  • Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  • Asegúrate de tener el propietario (roles/owner) o el Creador de claves de cuenta externa de CA pública (publicca.externalAccountKeyCreator) rol de IAM.

    Para otorgar el rol de IAM Creador de claves de cuenta externa de AC pública (publicca.externalAccountKeyCreator), ejecuta el siguiente comando:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:USER \
      --role=roles/publicca.externalAccountKeyCreator
    

    Reemplaza lo siguiente:

    • PROJECT_IDEl ID de tu proyecto de Google Cloud.
    • USER: El identificador único del usuario al que deseas enviarle asignar el rol de IAM

    Si quieres obtener información para otorgar un rol de IAM, consulta Administra el acceso a proyectos, carpetas y organizaciones.

  • Enable the Public CA API:

    gcloud services enable publicca.googleapis.com

Instalar un cliente

Para comenzar a usar la AC pública, debes instalar un cliente 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 cuenta externa (EAB).

Para instalar Certbot, consulta las instrucciones de Certbot.

Asegúrate de dirigir a tu cliente al servidor de la AC pública. La primera vez que el cliente de ACME interactúa con la AC pública, genera un par de claves nuevo y envía la clave pública a la AC pública.

Solicita un ID de clave y un HMAC de EAB

Después de instalar un cliente de ACME, debes registrar tu cuenta de ACME con la AC pública para solicitar certificados de la AC pública. Un secreto de EAB puede ayudarte a registrar tu cuenta de ACME con AC pública: 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 CA pública o Google Cloud CLI para solicitar un secreto de EAB.

Para solicitar un ID de clave y un HMAC de EAB, ejecuta el siguiente comando:

gcloud publicca external-account-keys create

Este comando muestra un secreto de EAB válido en el entorno de de la AC pública. En el cuerpo de la respuesta, el campo keyId contiene el ID de clave EAB y el campo b64MacKey contiene el HMAC de 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 vence.

Registra una cuenta de ACME

En esta sección, se explica cómo registrar una cuenta de ACME con la AC pública proporcionando el secreto de EAB que acabas de obtener.

Usa un cliente ACME normal para registrar una cuenta de ACME y proporciona el ID de clave y el HMAC de EAB durante el registro.

Cómo registrar una cuenta de ACME con Public CA y vincular la ACME al proyecto de Google Cloud 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ónico
  • SERVER: Es la URL del directorio de ACME para el entorno de producción o etapa de pruebas
  • EAB_KID: El ID de clave EAB
  • EAB_HMAC_KEY: La clave HMAC de 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 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 pruebas muestra 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. en un entorno de nube. 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 que tengas registró una cuenta de ACME con un secreto de EAB, este deja de ser válido y no puedes reutilizarlo. Si quieres registrar varias cuentas de ACME, debes solicitar un secreto de EAB único para cada una de ellas.

Solicitar certificados

Después de que la AC pública valide tu control del objetivo 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 normales de ACME 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 la comprobación manual de DNS.

Para usar la verificación DNS manual para solicitar un certificado, ejecuta el siguiente comando:

certbot certonly \
    --manual \
    --preferred-challenges "dns-01" \
    --server "SERVER" \
    --domains "DOMAINS"

Reemplaza lo siguiente:

  • SERVER: Es la URL del directorio de ACME para la producción o la etapa de pruebas. medio ambiente
  • DOMAINS: una lista de dominios separados por comas para los que estás solicitando certificados

Limpia

Si ya no necesita certificados para sus dominios, borrar el proyecto que creaste.

Etapa de pruebas

Puedes usar el entorno de pruebas de la AC pública para solicitar certificados con fines de prueba. Los certificados emitidos por la etapa hasta una CA raíz de prueba. Los certificados del entorno de etapa de pruebas no serán de confianza para navegadores ni otras clientes que no se configuraron para confiar en el certificado raíz de la etapa de pruebas. Para obtener un secreto de EAB válido en el entorno de etapa de pruebas, anula el extremo de API para usar el extremo del entorno de etapa de pruebas:

gcloud config set api_endpoint_overrides/publicca https://preprod-publicca.googleapis.com/
Luego, ejecuta el comando de creación de claves de cuenta para crear una clave de etapa de pruebas:
gcloud publicca external-account-keys create
Para volver al extremo del entorno de producción, ejecuta el siguiente comando: :
gcloud config unset api_endpoint_overrides/publicca

Borra un proyecto de Google Cloud:

gcloud projects delete PROJECT_ID

¿Qué sigue?