Gestione dei certificati server in IAM - AWS Identity and Access Management

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 server in IAM

Per abilitare le connessioni HTTPS al tuo sito Web o alla tua applicazione in AWS, devi disporre di un certificato server SSL/TLS. Per i certificati in una regione supportata da AWS Certificate Manager (ACM), consigliamo di utilizzare ACM per effettuare il provisioning, la gestione e la distribuzione dei certificati server. Nelle regioni non supportate, è necessario utilizzare IAM come gestore di certificati. Per informazioni sulle regioni supportate da ACM, consulta Endpoint e quote di AWS Certificate Manager nella Riferimenti generali di AWS.

ACM è lo strumento preferito per il provisioning, la gestione e la distribuzione dei certificati del server. Con ACM puoi richiedere un certificato o distribuire un certificato ACM o esterno esistente alle risorse. AWS I certificati forniti da ACM sono gratuiti e vengono automaticamente rinnovati. In una regione supportata è possibile utilizzare ACM per gestire i certificati server dalla console o a livello di programmazione. Per ulteriori informazioni sull'utilizzo di ACM, consulta la Guida per l'utente di AWS Certificate Manager . Per ulteriori informazioni su come richiedere un certificato ACM, consulta Richiesta di un certificato pubblico o Richiesta di un certificato privato nella Guida per l'utente di AWS Certificate Manager . Per ulteriori informazioni sull'importazione di certificati di terza parte in ACM, consulta Importazione di certificati nella Guida per l'utente di AWS Certificate Manager .

Utilizza IAM come gestore di certificati solo quando è necessario il supporto alle connessioni HTTPS in una regione che non è supportata da ACM. IAM crittografa in modo sicuro le chiavi private e archivia la versione crittografata nella memoria dei certificati SSL di IAM. IAM supporta la distribuzione di certificati server in tutte le regioni, ma è necessario ottenere il certificato da un provider esterno per utilizzarlo con. AWS Non è possibile caricare un certificato ACM in IAM. Inoltre, non è possibile gestire i certificati dalla console IAM.

Per ulteriori informazioni sul caricamento di certificati di terze parti in IAM, consulta i seguenti argomenti.

Caricamento di un certificato server (API)AWS

Per caricare un certificato del server in IAM, è necessario fornire il certificato e la chiave privata corrispondente. Quando il certificato non è autofirmato, è necessario fornire anche una catena di certificati. (La catena di certificati non necessaria se si carica un certificato autofirmato). Prima di caricare un certificato, assicurarsi di disporre di tutti questi elementi e di soddisfare i seguenti criteri:

  • Il certificato deve essere valido al momento del caricamento. Non è possibile caricare un certificato prima dell'inizio del periodo di validità NotBefore o dopo la data di scadenza (la data NotAfter del certificato).

  • La chiave di accesso non deve essere crittografata. Non è possibile caricare una chiave di accesso privata protetta da password o da passphrase. Per informazioni sulla decodifica di una chiave privata crittografata, consultare Risoluzione dei problemi.

  • Il certificato, la chiave privata e la catena di certificati devono tutti essere codificati con PEM. Per informazioni sulla conversione di tali elementi in formato PEM, consultare Risoluzione dei problemi.

Per utilizzare l'API IAM per caricare un certificato, invia una UploadServerCertificaterichiesta. L'esempio seguente mostra come eseguire questa operazione con l'AWS Command Line Interface (AWS CLI). L'esempio presuppone quanto segue:

  • Il certificato con codifica PEM è archiviato in un file denominato Certificate.pem.

  • La catena di certificati con codifica PEM è archiviata in un file denominato CertificateChain.pem.

  • La chiave privata non crittografata con codifica PEM è archiviata in un file denominato PrivateKey.pem.

  • (Facoltativo) Desideri applicare un tag al certificato del server con una coppia chiave-valore. Ad esempio, è possibile aggiungere la chiave tag Department e il valore tag Engineering per facilitare l'identificazione e l'organizzazione dei certificati.

Per utilizzare il seguente comando esemplificativo, sostituisci questi nomi di file con il tuo. Sostituiscilo ExampleCertificatecon un nome per il certificato caricato. Se desideri etichettare il certificato, sostituisci la coppia chiave-valore ExampleKeye ExampleValuetag con i tuoi valori. Digitare il comando su una linea continua. L'esempio seguente include interruzioni di linea e spazi aggiuntivi per agevolare la lettura.

aws iam upload-server-certificate --server-certificate-name ExampleCertificate --certificate-body file://Certificate.pem --certificate-chain file://CertificateChain.pem --private-key file://PrivateKey.pem --tags '{"Key": "ExampleKey", "Value": "ExampleValue"}'

Quando il comando precedente viene completato, restituisce i metadati relativi al certificato caricati, tra cui il relativo Amazon Resource Name (ARN), il nome descrittivo, l'identificatore (ID), la data di scadenza, i tag e molte altre informazioni.

Nota

Se stai caricando un certificato server da utilizzare con Amazon CloudFront, devi specificare un percorso utilizzando l'--pathopzione. Il percorso deve iniziare con /cloudfront e devono includere una barra finale (ad esempio, /cloudfront/test/).

Per utilizzare l'opzione AWS Tools for Windows PowerShell per caricare un certificato, usa ServerCertificatepublish-IAM.

Recupero di un certificato server (API)AWS

Per utilizzare l'API IAM per recuperare un certificato, invia una richiesta. GetServerCertificate L'esempio seguente mostra come eseguire questa operazione con l' AWS CLI. Sostituiscilo ExampleCertificatecon il nome del certificato da recuperare.

aws iam get-server-certificate --server-certificate-name ExampleCertificate

Quando il comando precedente viene completato, restituisce il certificato, la catena di certificati (se è stata caricata) e i metadati sul certificato.

Nota

Non è possibile scaricare o recuperare una chiave privata da IAM dopo averla caricata.

Per utilizzare il AWS Tools for Windows PowerShell per recuperare un certificato, usa Get-IAM. ServerCertificate

Elenco dei certificati del server (API)AWS

Per utilizzare l'API IAM per elencare i certificati del server caricati, invia una ListServerCertificatesrichiesta. L'esempio seguente mostra come eseguire questa operazione con l' AWS CLI.

aws iam list-server-certificates

Quando il comando precedente ha esito positivo, restituisce un elenco che contiene metadati relativi a ciascun certificato.

Per utilizzare per AWS Tools for Windows PowerShell elencare i certificati del server caricati, usa Get-IAM ServerCertificates.

Applicazione e rimozione di tag dei certificati server (API AWS )

Puoi allegare tag alle risorse IAM per organizzare e controllare l'accesso ad esse. Per utilizzare l'API IAM per etichettare un certificato server esistente, invia una TagServerCertificaterichiesta. L'esempio seguente mostra come eseguire questa operazione con l' AWS CLI.

aws iam tag-server-certificate --server-certificate-name ExampleCertificate --tags '{"Key": "ExampleKey", "Value": "ExampleValue"}'

Quando il comando precedente viene completato in modo corretto, non viene restituito alcun output.

Per utilizzare l'API IAM per rimuovere i tag da un certificato server, invia una UntagServerCertificaterichiesta. L'esempio seguente mostra come eseguire questa operazione con l' AWS CLI.

aws iam untag-server-certificate --server-certificate-name ExampleCertificate --tag-keys ExampleKeyName

Quando il comando precedente viene completato in modo corretto, non viene restituito alcun output.

Rinominare un certificato server o aggiornarne il percorso (API)AWS

Per utilizzare l'API IAM per rinominare un certificato del server o aggiornarne il percorso, invia una UpdateServerCertificaterichiesta. L'esempio seguente mostra come eseguire questa operazione con l' AWS CLI.

Per utilizzare il seguente comando di esempio, sostituire i nomi dei certificati precedenti e nuovi e il percorso del certificato e digitare il comando su una riga continua. L'esempio seguente include interruzioni di linea e spazi aggiuntivi per agevolare la lettura.

aws iam update-server-certificate --server-certificate-name ExampleCertificate --new-server-certificate-name CloudFrontCertificate --new-path /cloudfront/

Quando il comando precedente ha esito positivo, non viene restituito alcun output.

Per utilizzare il AWS Tools for Windows PowerShell per rinominare un certificato del server o aggiornarne il percorso, usa update-IAM. ServerCertificate

Eliminazione di un certificato del server (API)AWS

Per utilizzare l'API IAM per eliminare un certificato del server, invia una DeleteServerCertificaterichiesta. L'esempio seguente mostra come eseguire questa operazione con l' AWS CLI.

Per utilizzare il seguente comando di esempio, sostituiscilo ExampleCertificatecon il nome del certificato da eliminare.

aws iam delete-server-certificate --server-certificate-name ExampleCertificate

Quando il comando precedente ha esito positivo, non viene restituito alcun output.

Per utilizzare il AWS Tools for Windows PowerShell per eliminare un certificato del server, usa Remove-IAM ServerCertificate.

Risoluzione dei problemi

Prima di poter caricare un certificato in IAM, è necessario assicurarsi che il certificato, la chiave privata e la catena di certificati dispongano tutti della codifica PEM. È inoltre necessario assicurarsi che la chiave privata non sia crittografata. Fare riferimento agli esempi riportati di seguito.

Esempio di certificato con codifica PEM
-----BEGIN CERTIFICATE----- Base64-encoded certificate -----END CERTIFICATE-----
Esempio di chiave privata con codifica PEM, non crittografata
-----BEGIN RSA PRIVATE KEY----- Base64-encoded private key -----END RSA PRIVATE KEY-----
Esempio di catena di certificati con codifica PEM

Una catena di certificati contiene uno o più certificati. Puoi utilizzare un editor di testo, il comando di copia in Windows, oppure il comando Linux cat per concatenare i tuoi file del certificato in una catena. Quando includi più certificati, ogni certificato deve certificare il certificato precedente. Puoi farlo concatenando i certificati, incluso il certificato CA radice per ultimo.

L'esempio seguente contiene tre certificati, ma la catena di certificati può contenerne un numero maggiore o minore di certificati.

-----BEGIN CERTIFICATE----- Base64-encoded certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64-encoded certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64-encoded certificate -----END CERTIFICATE-----

Se questi elementi non sono nel formato corretto per il caricamento in IAM, puoi utilizzare OpenSSL per convertirli nel formato corretto.

Per convertire un certificato o una catena di certificati da DER a PEM

Utilizzare il comando OpenSSL x509, come nell'esempio seguente. Nel seguente comando di esempio, sostituire Certificate.der con il nome del file che contiene il certificato con codifica DER. Sostituire Certificate.pem con il nome preferito del file di output per contenere il certificato con codifica PEM.

openssl x509 -inform DER -in Certificate.der -outform PEM -out Certificate.pem

 

Per convertire una chiave privata da DER a PEM

Utilizzare il comando OpenSSL rsa, come nell'esempio seguente. Nel seguente comando di esempio, sostituire PrivateKey.der con il nome del file che contiene la chiave privata con codifica DER. Sostituire PrivateKey.pem con il nome preferito del file di output per contenere la chiave privata con codifica PEM.

openssl rsa -inform DER -in PrivateKey.der -outform PEM -out PrivateKey.pem

 

Per decrittografare una chiave privata crittografata (rimuovere la password o la passphrase)

Utilizzare il comando OpenSSL rsa, come nell'esempio seguente. Per utilizzare il seguente comando di esempio, sostituire EncryptedPrivateKey.pem con il nome del file che contiene la chiave privata crittografata. Sostituire PrivateKey.pem con il nome preferito del file di output per contenere la chiave privata con codifica PEM non crittografata.

openssl rsa -in EncryptedPrivateKey.pem -out PrivateKey.pem

 

Per convertire un bundle di certificati da PKCS # 12 (PFX) a PEM

Utilizzare il comando OpenSSL pkcs12, come nell'esempio seguente. Nel seguente comando di esempio, sostituire CertificateBundle.p12 con il nome del file che contiene il bundle di certificati con codifica PKCS#12. Sostituire CertificateBundle.pem con il nome preferito del file di output per contenere il bundle di certificati con codifica PEM.

openssl pkcs12 -in CertificateBundle.p12 -out CertificateBundle.pem -nodes

 

Per convertire un bundle di certificati da PKCS#7 a PEM

Utilizzare il comando OpenSSL pkcs7, come nell'esempio seguente. Nel seguente comando di esempio, sostituire CertificateBundle.p7b con il nome del file che contiene il bundle di certificati con codifica PKCS#7. Sostituire CertificateBundle.pem con il nome preferito del file di output per contenere il bundle di certificati con codifica PEM.

openssl pkcs7 -in CertificateBundle.p7b -print_certs -out CertificateBundle.pem