Gestione dei certificati con AWS Certificate Manager - Amazon CloudFront

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à.

Gestione dei certificati con AWS Certificate Manager

AWS Certificate Manager (ACM) archivia i certificati client che vengono CloudFront presentati ai server di origine durante l'autenticazione reciproca TLS (origine).

Supporto dell'Autorità di certificazione

CloudFront Mutual TLS (origine) richiede certificati client con Extended Key Usage (EKU) per l'autenticazione del client TLS. A causa di questo requisito, è necessario emettere certificati dall'Autorità di certificazione e importarli in AWS Certificate Manager. Le funzionalità di fornitura e rinnovo automatico dei certificati di ACM non sono disponibili per i certificati client TLS (di origine) reciproci. CloudFront Mutual TLS (origine) supporta i certificati client provenienti da due fonti:

  • AWS Autorità di certificazione privata: è possibile emettere certificati da AWS Private CA utilizzando modelli di certificato che includono l'autenticazione del client TLS nel campo Extended Key Usage (come il EndEntityClientAuthCertificate modello). Dopo aver emesso il certificato da AWS Private CA, è necessario importarlo in ACM nella regione Stati Uniti orientali (Virginia settentrionale) (us-east-1). Questo approccio offre i vantaggi in termini di sicurezza di AWS Private CA, garantendo al contempo il controllo sulla gestione del ciclo di vita dei certificati.

  • Autorità di certificazione private di terze parti: puoi anche emettere certificati dalla tua infrastruttura privata di autorità di certificazione esistente e importarli in ACM. Ciò consente di mantenere gli attuali processi di gestione dei certificati sfruttando CloudFront al contempo le funzionalità TLS (origine) reciproche. I certificati devono includere l'autenticazione del client TLS nel campo Extended Key Usage e devono essere in formato PEM con il certificato, la chiave privata e la catena di certificati.

Importante

Sia per AWS Private CA che per terze parti CAs, sei responsabile del monitoraggio delle date di scadenza dei certificati e dell'importazione dei certificati rinnovati in ACM prima della scadenza. La funzionalità di rinnovo automatico di ACM non si applica ai certificati importati utilizzati per il TLS reciproco (origine).

Requisiti e specifiche dei certificati

Requisiti del certificato del cliente

  • Formato: formato PEM (Privacy Enhanced Mail)

  • Componenti: certificato, chiave privata e catena di certificati

  • Profondità massima della catena di certificati: 3 (certificato fogliare+certificato intermedio+certificato radice)

  • Dimensione massima della catena di certificati: 64 KB

  • Dimensione del certificato: non può superare i 96 KB

  • Dimensione massima della chiave privata: 5 KB (restrizione ACM)

  • Numero massimo di certificati MTLS di origine univoci ARNs che possono essere aggiunti o modificati per ogni CloudFront distribuzione, creazione o aggiornamento della chiamata API: 5

  • Regione: i certificati devono essere archiviati in ACM nella regione Stati Uniti orientali (Virginia settentrionale) (us-east-1)

Specifiche dei certificati supportate

  • Tipo di certificato: X.509v3

  • Algoritmi a chiave pubblica:

    • RSA: 2048 bit

    • ECDSA: P-256

  • Algoritmi di firma:

    • SHA256 SHA384, SHA512 con RSA

    • SHA256 SHA384, SHA512 con ECSA

    • SHA256, con SHA384 RASSA-PSS SHA512 con MGF1

  • Utilizzo esteso delle chiavi (richiesto): il certificato richiede l'estensione Extended Key Usage (EKU) impostata su TLS Client Authentication, che ne garantisce l'autorizzazione per scopi mTLS

Requisiti del certificato del server

I server di origine devono presentare certificati emessi da autorità di certificazione pubblicamente attendibili durante l'handshake TLS reciproco. Per i dettagli completi sui requisiti dei certificati del server di origine, consulta Requisiti per l'utilizzo dei SSL/TLS certificati con. CloudFront

Richiedi o importa un certificato

Prima di abilitare il TLS reciproco (origine), è necessario disporre di un certificato client disponibile in ACM.

Richiedi e importa un certificato da Private CA AWS

Prerequisiti:

  • Un'autorità di certificazione AWS privata configurata nel tuo account

  • Autorizzazione a emettere certificati da AWS Private CA

  • Autorizzazione a importare certificati in ACM

  • Un modello di certificato ARN adatto al tuo caso Extended key usage:TLS web client authentication d'uso

  • Installa OpenSSL AWS , CLI e jq (per l'analisi di JSON).

Per richiedere un certificato da PCA e importarlo in ACM (CLI AWS )
  1. Imposta il tuo ARN CA privato in una variabile per facilitarne il riutilizzo.

    PCA_ARN="arn:aws:acm-pca:region:account:certificate-authority/12345678..."
  2. Usa OpenSSL per generare una chiave privata ECDSA P-256 (curva prime256v1) e una richiesta di firma del certificato (CSR), assicurandoti che venga utilizzato il flag -nodes per mantenere la chiave privata non crittografata come richiesto per l'importazione ACM.

    openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes \ -keyout private.key \ -out request.csr \ -subj "/CN=client.example.com"
  3. Invia la CSR alla tua CA AWS privata per emettere un certificato, che restituisce l'ARN del certificato appena emesso.

    CERT_ARN=$(aws acm-pca issue-certificate \ --certificate-authority-arn "$PCA_ARN" \ --csr fileb://request.csr \ --signing-algorithm "SHA256WITHECDSA" \ --validity Value=365,Type="DAYS" \ --template-arn arn:aws:acm-pca:::template/EndEntityCertificate/V1 \ --query 'CertificateArn' --output text)
  4. Recupera il pacchetto di certificati da AWS PCA utilizzando il comando get-certificate, che restituisce sia il certificato leaf che la catena, quindi usa jq per separarli in file distinti.

    # Retrieve the full certificate bundle in JSON format aws acm-pca get-certificate \ --certificate-authority-arn "$PCA_ARN" \ --certificate-arn "$CERT_ARN" \ --output json > full_cert.json # Split into Leaf and Chain jq -r '.Certificate' full_cert.json > leaf_cert.pem jq -r '.CertificateChain' full_cert.json > cert_chain.pem
  5. Importa la chiave privata non crittografata, il certificato leaf e la catena di certificati in AWS ACM, utilizzando il protocollo fileb://per gestire correttamente i dati dei file binari nella CLI.

    aws acm import-certificate \ --certificate fileb://leaf_cert.pem \ --private-key fileb://private.key \ --certificate-chain fileb://cert_chain.pem \ --region us-east-1 \ --query 'CertificateArn' \ --output text

Importa un certificato da una CA di terze parti

Prerequisiti:

  • Un certificato, una chiave privata non crittografata e una catena di certificati dall'Autorità di certificazione in formato PEM

  • Il certificato deve includere l'utilizzo esteso delle chiavi per l'autenticazione del client TLS

  • Autorizzazioni per importare certificati in ACM

Per importare un certificato in ACM (AWS CLI)
aws acm import-certificate \ --certificate fileb://certificate.pem \ --private-key fileb://private-key.pem \ --certificate-chain fileb://certificate-chain.pem \ --region us-east-1 \ --query 'CertificateArn' \ --output text

Fasi successive

Dopo aver ottenuto o importato il certificato client in ACM, puoi configurare il server di origine in modo che richieda l'autenticazione TLS reciproca e abiliti il TLS reciproco (origine) sulla tua distribuzione. CloudFront Per istruzioni su come abilitare il TLS reciproco (origine) in CloudFront, consulta la sezione successiva «Abilita il TLS reciproco (origine) per le distribuzioni». CloudFront