Richiedere un certificato utilizzando una Public CA e un client ACME

Questo tutorial ti guida nella richiesta di un certificato TLS con l'Public Certificate Authority utilizzando Google Cloud CLI. Per informazioni sulle CA radice e intermedie utilizzate da Public Certificate Authority, vedi Google Trust Services. Non sono previsti costi per la richiesta di certificati alla CA pubblica.

Prima di iniziare

  • Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

    gcloud init

    Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  • Create or select 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 the resourcemanager.projects.create permission. Learn how to grant roles.
    • 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.

  • Assicurati di disporre del ruolo IAM Creatore chiave account esterno CA pubblica (roles/publicca.externalAccountKeyCreator).

    Per concedere questo ruolo, esegui questo comando:

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

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud
    • USER: l'identificatore univoco dell'utente a cui vuoi assegnare il ruolo IAM

    Per informazioni sulla concessione di un ruolo IAM, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

  • Enable the Public CA API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable publicca.googleapis.com

Installare un client

Per iniziare a utilizzare l'Public CA, devi installare un client ACME. Le istruzioni seguenti utilizzano Certbot come client ACME. Puoi utilizzare qualsiasi altro client ACME se supporta il collegamento di account esterni (EAB).

Per installare Certbot, consulta le istruzioni di Certbot.

Assicurati di indirizzare il client al server Public CA. La prima volta che il client ACME interagisce con l'autorità di certificazione pubblica, genera una nuova coppia di chiavi e invia la chiave pubblica all'autorità di certificazione pubblica.

Richiedere un ID chiave EAB e un HMAC

Dopo aver installato un client ACME, devi registrare il tuo account ACME con la Public CA per richiedere certificati alla CA pubblica. Un segreto EAB può aiutarti a registrare il tuo account ACME con la CA pubblica. Un secret EAB è costituito da un ID chiave e da un codice HMAC (Hash-based Message Authentication Code).

Puoi utilizzare l'API CA pubblica o Google Cloud CLI per richiedere un secret EAB.

Per richiedere un ID chiave EAB e un HMAC, esegui questo comando:

gcloud publicca external-account-keys create

Questo comando restituisce un segreto EAB valido nell'ambiente di produzione dell'autorità di certificazione pubblica. Nel corpo della risposta, il campo keyId contiene l'ID chiave EAB e il campo b64MacKey contiene l'HMAC EAB.

Devi utilizzare un segreto EAB entro 7 giorni dall'ottenimento. Il segreto EAB viene invalidato se non lo utilizzi entro 7 giorni. L'account ACME registrato utilizzando un secret EAB non ha scadenza.

Registrare un account ACME

Questa sezione spiega come registrare un account ACME con l'Public CA fornendo il segreto EAB appena ottenuto.

Utilizza un normale client ACME per registrare un account ACME e fornisci l'ID chiave EAB e l'HMAC durante la registrazione.

Per registrare un account ACME con l'autorità della Public CA e associarlo al progetto Google Cloud che hai utilizzato per richiedere il secret EAB, esegui il seguente comando:

certbot register \
    --email "EMAIL_ADDRESS" \
    --no-eff-email \
    --server "SERVER" \
    --eab-kid "EAB_KID" \
    --eab-hmac-key "EAB_HMAC_KEY"

Sostituisci quanto segue:

  • EMAIL_ADDRESS: il tuo indirizzo email
  • SERVER: l'URL della directory ACME per l'ambiente di produzione o di staging
  • EAB_KID: l'ID chiave EAB
  • EAB_HMAC_KEY: la chiave HMAC EAB

La tabella seguente fornisce la descrizione e l'URL della directory ACME per l'ambiente di produzione e di staging:

Ambiente Descrizione URL della directory ACME
Produzione L'ambiente di produzione consente di ottenere certificati attendibili pubblicamente. https://dv.acme-v02.api.pki.goog/directory
Gestione temporanea L'ambiente di staging restituisce certificati non attendibili pubblicamente. L'ambiente di gestione temporanea esegue gli stessi controlli di convalida dell'ambiente di produzione. Puoi utilizzare l'ambiente di staging per l'integrazione o qualsiasi altro tipo di test. https://dv.acme-v02.test-api.pki.goog/directory

Puoi registrare un solo account ACME con un segreto EAB. Dopo aver registrato un account ACME utilizzando un secret EAB, quest'ultimo diventa non valido e non puoi riutilizzarlo. Se vuoi registrare più account ACME, devi richiedere un segreto EAB univoco per ciascun account.

Richiedere certificati

Una volta che la CA pubblica convalida il tuo controllo della destinazione del certificato e conferma che il client ACME funziona come previsto per eseguire le operazioni di gestione dei certificati, puoi utilizzare i normali flussi di lavoro ACME per richiedere, rinnovare e revocare i certificati. Puoi eseguire queste operazioni utilizzando il client ACME. Per richiedere e rinnovare un certificato, devi completare una verifica ACME, come la verifica DNS manuale.

Per utilizzare la verifica DNS manuale per richiedere un certificato, esegui questo comando:

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

Sostituisci quanto segue:

  • SERVER: l'URL della directory ACME per l'ambiente di produzione o di staging
  • DOMAINS: un elenco separato da virgole di domini per i quali stai richiedendo certificati

Esegui la pulizia

Se non hai più bisogno dei certificati per i tuoi domini, elimina il progetto che hai creato.

Gestione temporanea

Puoi utilizzare l'ambiente di staging di Public CA per richiedere certificati a scopo di test. I certificati emessi dalla catena dell'ambiente di staging sono collegati a una CA radice di test. I certificati dell'ambiente di staging non saranno considerati attendibili dai browser o da altri client che non sono stati configurati per considerare attendibile il certificato radice di staging. Per ottenere un segreto EAB valido nell'ambiente di staging, esegui l'override dell'endpoint API per utilizzare l'endpoint per l'ambiente di staging:

gcloud config set api_endpoint_overrides/publicca https://preprod-publicca.googleapis.com/
Poi esegui il comando di creazione della chiave dell'account per creare una chiave di staging:
gcloud publicca external-account-keys create
Per ripristinare l'endpoint per l'ambiente di produzione, esegui questo comando:
gcloud config unset api_endpoint_overrides/publicca

Delete a Google Cloud project:

gcloud projects delete PROJECT_ID

Passaggi successivi