View a markdown version of this page

Emissione di certificati tramite ACME - AWS Certificate Manager

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Emissione di certificati tramite ACME

Dopo che l'amministratore PKI ha configurato un endpoint ACME con convalide di dominio e associazioni di account esterni, i proprietari delle applicazioni possono utilizzare i client ACME per emettere certificati. Questa sezione descrive il flusso di emissione, fornisce un breve esempio di utilizzo di Certbot e spiega come vengono visualizzati i certificati in ACM. ACME-issued

Come funziona l'emissione

Il flusso di emissione del certificato ACME segue il protocollo RFC 8555:

  1. Registrazione dell'account: il client ACME registra un account utilizzando le credenziali EAB (ID chiave e chiave MAC). Si tratta di un passaggio una tantum per cliente ACME.

  2. Ordine del certificato: il client crea un ordine che specifica i nomi di dominio per il certificato.

  3. Autorizzazione: il server ACME controlla le convalide dei domini preconfigurati. Poiché l'endpoint utilizza l'PRE_APPROVEDautorizzazione, non sono richieste sfide in tempo reale da parte del client.

  4. Finalizzazione: il client invia una richiesta di firma del certificato (CSR) per finalizzare l'ordine e ACM emette il certificato.

  5. Download: il client scarica la catena di certificati emessa.

Importante

La chiave privata viene generata dal client ACME e non lascia mai il sistema del client.

Esempio: emissione di un certificato con Certbot

Questo esempio mostra come registrare un account ACME e richiedere un certificato utilizzando Certbot.

Prerequisiti

  • Un endpoint ACME in ACTIVE stato (hai l'URL della directory)

  • Almeno una convalida VALID dello stato del dominio per il dominio che desideri

  • Credenziali EAB (ID chiave e chiave MAC) fornite dall'amministratore PKI

  • Certbot installato sul tuo sistema

Per registrare un account e richiedere un certificato

Importante

L'emissione del certificato tramite l'endpoint ACM ACME può richiedere fino a due minuti. Configura il timeout di emissione del tuo client ACME su almeno 120 secondi (2 minuti) per evitare che il client scada prima della consegna del certificato. L'impostazione predefinita di molti client ACME è di 30-90 secondi, il che non è sufficiente.

Esegui il comando seguente:

certbot certonly \ --standalone \ --non-interactive \ --agree-tos \ --email user@example.com \ --server https://acm-acme-enroll.region.api.aws/00000000-0000-0000-0000-000000000000/directory \ --eab-kid AAABBBCCC111222333 \ --eab-hmac-key base64encodedmackey \ --issuance-timeout 120 \ --domain www.example.com

Una volta completata l'emissione, Certbot archivia il certificato e la chiave privata nella posizione predefinita (in genere). /etc/letsencrypt/live/www.example.com/

Certificati ACME in ACM

I certificati emessi tramite ACME ricevono automaticamente un certificato ACM standard ARN e vengono visualizzati nell'inventario dei certificati ACM. Tuttavia, ACME-issued i certificati presentano differenze importanti rispetto ai certificati emessi tramite. RequestCertificate

Principali differenze

  • La chiave privata è lato client: la chiave privata del certificato viene generata e archiviata dal client ACME. ACM non ha accesso alla chiave privata.

  • Impossibile collegarsi a servizi integrati: poiché AWS non contiene la chiave privata, i certificati ACME non possono essere utilizzati con Elastic Load Balancing o API CloudFront Gateway.

  • Non nell'elenco di output predefinito: per impostazione predefinita, i certificati ACME non vengono visualizzati nei ListCertificates risultati. È necessario includere il CertificateKeyPairOrigins filtro con valore ACME per includerli. SearchCertificatesrestituisce i certificati ACME per impostazione predefinita.

  • Impossibile esportare tramite ACM: l'ExportCertificateAPI non può essere utilizzata perché il certificato è già esportato per definizione poiché il client lo possiede.

  • Revoca solo tramite ACME: utilizza l'URL revoke-cert dell'endpoint ACME. L'API ACM non funziona per i certificati. RevokeCertificate ACME-issued

  • Il rinnovo è gestito dal cliente: ACM non rinnova automaticamente i certificati ACME. Il client ACME deve richiedere un nuovo certificato prima della scadenza di quello esistente.

Visualizzazione dei certificati ACME

Nella console ACM, utilizza il filtro per includere certificati con un'origine di key pair ACME. Per ulteriori informazioni sulla ricerca dei certificati, consulta. Cerca certificati

Per elencare i certificati ACME (AWS CLI)

Utilizza list-certificates con il filtro: CertificateKeyPairOrigins

aws acm list-certificates \ --certificate-key-pair-origins ACME

Per cercare certificati ACME (AWS CLI)

Utilizzalo search-certificates con il CertificateKeyPairOrigin filtro per trovare i certificati ACME in base a criteri aggiuntivi:

aws acm search-certificates \ --filter-statement '{"Filter": {"AcmCertificateMetadataFilter": {"CertificateKeyPairOrigin": "ACME"}}}'

Puoi anche cercare i certificati emessi tramite un endpoint o un account ACME specifico filtrando su o. AcmeEndpointArn AcmeAccountId

Per visualizzare i dettagli del certificato (AWS CLI)

Esegui il comando seguente:

aws acm describe-certificate \ --certificate-arn arn:aws:acm:region:account-id:certificate/certificate-id

Revoca dei certificati ACME

Per revocare un certificato emesso tramite ACME, utilizza l'endpoint revoke-cert del protocollo ACME. Il client ACME si occupa di questo.

Nota

ACME-issued i certificati non possono essere revocati utilizzando l'API RevokeCertificate ACM. È necessario revocare questi certificati tramite l'endpoint ACME che li ha emessi.

L'esempio seguente mostra la revoca tramite Certbot:

certbot revoke \ --cert-path /etc/letsencrypt/live/www.example.com/cert.pem \ --server https://acm-acme-enroll.region.api.aws/00000000-0000-0000-0000-000000000000/directory

La revoca è autorizzata dal ruolo IAM associato all'associazione dell'account esterno del cliente, pertanto qui si applicano le stesse politiche IAM e gli SCP che si applicano all'azione standardacm:RevokeCertificate. Per ulteriori informazioni sulla configurazione del ruolo IAM richiesta, consulta. IAM per l'automazione dei certificati ACME

Rinnovo del certificato

I certificati ACME non vengono rinnovati da ACM. Il tuo cliente ACME è responsabile della richiesta di un nuovo certificato prima della scadenza di quello attuale. La maggior parte dei clienti ACME (incluso Certbot) supporta il rinnovo automatico tramite attività pianificate (come cron job o systemd timers).

Stabilità dell'ARN durante i rinnovi

Quando un cliente ACME rinnova un certificato, ACM determina se la nuova emissione è il rinnovo di un certificato esistente o di un certificato distinto. Se l'emissione proviene dallo stesso account ACME con gli stessi metadati del certificato (come nomi di dominio e algoritmo chiave), ACM aggiorna l'ARN del certificato esistente anziché crearne uno nuovo. Ciò mantiene l'ARN stabile durante i rinnovi, semplificando il monitoraggio e l'automazione.

Se il certificato originale è stato rimosso da ACM (ad esempio, perché è scaduto più di un anno fa ed è stato eliminato automaticamente), un'emissione successiva con gli stessi metadati crea un nuovo ARN del certificato.

Esempio di rinnovo automatico di Certbot (in genere configurato automaticamente durante l'installazione di Certbot):

certbot renew --quiet