Richiedi un certificato utilizzando Public CA e un client ACME

Questo tutorial ti guida nella richiesta di un certificato TLS con Public Certificate Authority utilizzando Google Cloud CLI. Per informazioni sulle CA radice e intermedie utilizzate da Public Certificate Authority, consulta Google Trust Services. Non è previsto alcun addebito per la richiesta di certificati da Public CA, anche se le operazioni ACME sono soggette alle quote di richieste di Public CA.

Prima di iniziare

  • Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:

    gcloud init

  • Crea o seleziona un progetto Google Cloud .

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per cui ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
    • 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 progetto Google Cloud .

  • Assicurati di disporre del ruolo IAM Public CA External Account Key Creator (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 Gestisci l'accesso a progetti, cartelle e organizzazioni.

  • Abilita l'API Public CA, se non è già abilitata:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    gcloud services enable publicca.googleapis.com

Installa 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 l'associazione di account esterni (EAB).

Per installare Certbot, consulta le istruzioni di Certbot.

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

Richiedi un ID chiave EAB e un HMAC

Dopo aver installato un client ACME, devi registrare il tuo account ACME presso lPublic CA per richiedere i certificati. Un secret EAB può aiutarti a registrare il tuo account ACME con l'autorità di certificazione pubblica. Un secret EAB è costituito da un ID chiave e da un codice di autenticazione dei messaggi basato su hash (HMAC).

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 di Certificate Authority (CA) pubblica. Nel corpo della risposta, il campo keyId contiene l'ID chiave EAB e il campo b64MacKey contiene l'HMAC EAB.

Devi utilizzare un secret EAB entro 7 giorni dalla sua acquisizione. 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 l'Public CA fornendo il secret EAB appena ottenuto.

Utilizza un client ACME standard 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 associarlo 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 tabella seguente fornisce la descrizione e l'URL della directory ACME per l'ambiente di produzione e di gestione temporanea:

Ambiente Descrizione URL della directory ACME
Produzione 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 certificati che non sono considerati 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 puoi riutilizzarlo. Se vuoi registrare più account ACME, devi richiedere un secret EAB univoco per ciascuno degli account.

Richiedi certificati

Dopo che Certificate Authority al pubblico ha convalidato il tuo controllo della destinazione del certificato e ha confermato che il tuo client ACME funziona come previsto per eseguire le operazioni di gestione dei certificati, puoi utilizzare i normali workflow ACME per richiedere, rinnovare e revocare i certificati. Puoi eseguire queste operazioni utilizzando il tuo client ACME. Per richiedere e rinnovare un certificato, devi completare una verifica ACME, ad esempio la verifica DNS manuale.

Se utilizzi i record DNS CAA (Certification Authority Authorization) per controllare quali CA possono emettere certificati per il tuo dominio, devi specificare pki.goog come emittente autorizzato, ad esempio 0 issue "pki.goog". La Public CA supporta anche le estensioni dei record CAA per l'URI dell'account e l'associazione del metodo ACME, come definito nella RFC 8657, che consente di limitare l'emissione dei certificati a un account ACME specifico utilizzando il parametro accounturi e a metodi di convalida specifici utilizzando il parametro validationmethods.

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 gestione temporanea
  • DOMAINS: un elenco separato da virgole di domini per i quali richiedi i 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 gestione temporanea della Public CA per richiedere certificati a scopo di test. I certificati emessi dall'ambiente di gestione temporanea si collegano a una CA radice di test. I certificati dell'ambiente di gestione temporanea non saranno considerati attendibili dai browser o da altri client che non sono stati configurati per considerare attendibile il certificato radice di gestione temporanea. Per ottenere un secret EAB valido nell'ambiente di gestione temporanea, esegui l'override dell'endpoint API per utilizzare l'endpoint per l'ambiente di gestione temporanea:

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 gestione 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