Solicita un certificado mediante 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 más información sobre las AC intermedias y raíz que usa Public Certificate Authority, consulta Google Trust Services. No se aplican cargos por solicitar certificados de Public CA.

Antes de comenzar

  • Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

    gcloud init

  • Crea o selecciona un proyecto de Google Cloud.

    • Crea un proyecto de Google Cloud:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto de Google Cloud que estás creando.

    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del proyecto de Google Cloud.

  • Asegúrate de tener la función de IAM Propietario (roles/owner) o Creador de claves de cuenta externa de CA pública (publicca.externalAccountKeyCreator).

    Para otorgar la función de IAM de creador de claves de cuenta externa de CA 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: Es el identificador único del usuario al que deseas asignar la función de IAM.

    Para obtener información sobre cómo otorgar una función de IAM, consulta Administra el acceso a proyectos, carpetas y organizaciones.

  • Habilita la Public CA API:

    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 utilizar cualquier otro cliente de ACME si el cliente admite la vinculación externa de cuentas (EAB).

Para instalar Certbot, consulta sus instrucciones.

Asegúrate de dirigir tu cliente al servidor de 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 a Public CA. Un secreto de EAB puede ayudarte a registrar tu cuenta de ACME con 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 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 muestra 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 de 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 mediante un secreto de EAB no tiene vencimiento.

Registra una cuenta de ACME

En esta sección, se explica cómo registrar una cuenta de ACME con 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 Public CA y vincular la cuenta de 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: Es 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 etapa de pruebas:

Entorno Descripción URL del directorio de ACME
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 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. 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 mediante un secreto de EAB, este deja de ser válido y no puedes volver a utilizarlo. 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 CA pública valide tu control del objetivo del certificado y confirme 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 el desafío de DNS manual.

Si quieres 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: Es la URL del directorio de ACME para el entorno de producción o de etapa de pruebas.
  • DOMAINS: Es una lista separada por comas de dominios 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 Public CA para solicitar certificados con fines de prueba. Los certificados que emite la cadena del entorno de etapa de pruebas hasta una CA raíz de prueba. Los navegadores y otros clientes que no estén configurados 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 válido en el entorno de etapa de pruebas, anula el extremo de API a fin de 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?