Richiedi un certificato utilizzando una Public CA e un client ACME

Questo tutorial illustra come richiedere un certificato TLS con un'Public Certificate Authority utilizzando Google Cloud CLI. Per informazioni sulle CA radice e intermedie utilizzate dall'Public Certificate Authority, consulta Google Trust Services. Non è previsto alcun costo per la richiesta di certificati alla CA pubblica.

Prima di iniziare

  • Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

    gcloud init

  • Crea o seleziona un progetto Google Cloud.

    • Crea un progetto Google Cloud:

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del tuo progetto Google Cloud.

  • Assicurati di disporre del ruolo IAM Proprietario (roles/owner) o Creatore chiave account esterna CA pubblica (publicca.externalAccountKeyCreator).

    Per concedere il ruolo IAM Creatore chiave account esterno CA pubblica (publicca.externalAccountKeyCreator), 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.

  • Attiva Public CA API.

    gcloud services enable publicca.googleapis.com

Installa un client

Per iniziare a utilizzare la Public CA, devi installare un client ACME. Nelle istruzioni seguenti viene utilizzato Certbot come client ACME. Puoi utilizzare qualsiasi altro client ACME se supporta l'associazione di account esterna (EAB).

Per installare Certbot, consulta le istruzioni per Certbot.

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

Richiedi un ID chiave EAB e un HMAC

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

Puoi utilizzare l'API Public CA 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 secret EAB valido nell'ambiente di produzione della CA pubblica. Nel corpo della risposta, il campo keyId contiene l'ID chiave EAB, mentre il campo b64MacKey contiene l'HMAC EAB.

Devi utilizzare un secret EAB entro 7 giorni da quando lo hai ottenuto. Il secret EAB viene invalidato se non lo utilizzi entro 7 giorni. L'account ACME registrato utilizzando un secret EAB non ha scadenza.

Registra un account ACME

Questa sezione spiega come registrare un account ACME con la Public CA fornendo il secret EAB che hai 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 Public CA e associare l'account ACME al progetto Google Cloud che hai utilizzato per richiedere il secret EAB, esegui questo 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 gestione temporanea
  • EAB_KID: l'ID chiave EAB
  • EAB_HMAC_KEY: la chiave HMAC EAB

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

Ambiente Descrizione URL directory ACME
L'ambiente di produzione ti consente di ottenere certificati pubblicamente attendibili. https://dv.acme-v02.api.pki.goog/directory
Gestione temporanea L'ambiente di gestione temporanea restituisce i certificati che non sono attendibili pubblicamente. L'ambiente di gestione temporanea esegue gli stessi controlli di convalida dell'ambiente di produzione. Puoi utilizzare l'ambiente di gestione temporanea 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 secret EAB. Dopo aver registrato un account ACME utilizzando un secret EAB, il secret EAB non è più valido e non può essere riutilizzato. Se vuoi registrare più account ACME, devi richiedere un secret EAB univoco per ciascuno degli account.

Richiedi certificati

Dopo che la CA pubblica ha convalidato il controllo della destinazione del certificato e ha confermato che il client ACME funziona come previsto per 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 manuale del DNS.

Per utilizzare la verifica manuale del DNS 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 gestione temporanea
  • 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 gestione temporanea della Public CA per richiedere certificati a scopo di test. I certificati emessi dalla catena di ambienti di gestione temporanea fino a una CA radice di test. I certificati dell'ambiente di gestione temporanea non verranno considerati attendibili dai browser o da altri client non configurati in modo da considerare attendibili il certificato radice di gestione temporanea. Per ottenere un secret EAB valido nell'ambiente di gestione temporanea, esegui l'override dell'endpoint API in modo che utilizzi l'endpoint per l'ambiente di gestione temporanea:

gcloud config set api_endpoint_overrides/publicca https://preprod-publicca.googleapis.com/
Quindi esegui il comando di creazione della chiave dell'account per creare una chiave temporanea:
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

Elimina un progetto Google Cloud:

gcloud projects delete PROJECT_ID

Passaggi successivi