In questo tutorial imparerai come installare un certificato SSL su AWS (Amazon Web Services). Su AWS non si installa un certificato su un singolo server come si farebbe con Apache o Nginx. Invece, si importa il certificato una sola volta in un archivio di certificati, per poi collegarlo a un servizio gestito (un load balancer, CloudFront o API Gateway) che termina la connessione TLS al posto tuo. Questa guida copre AWS Certificate Manager (ACM), il vecchio archivio certificati IAM ed Elastic Load Balancing (ELB).
Prima dell’installazione, devi generare una Certificate Signing Request (CSR) e inviarla alla Certificate Authority per l’approvazione. Se non hai ancora completato questo passaggio, inizia dalla prima parte di questo tutorial. Se hai già i file del tuo certificato SSL, vai direttamente alla guida di installazione qui sotto.
Come generare un codice CSR su AWS
Quando richiedi un certificato SSL, un passaggio essenziale consiste nell’inviare il codice CSR al tuo provider SSL, chiamato anche Certificate Authority. Il CSR contiene informazioni codificate sul tuo nome di dominio e sulla tua organizzazione. Non puoi ottenere un certificato SSL firmato senza fornire questo blocco di codice. Hai due opzioni:
- Usa il nostro Generatore CSR per creare il CSR automaticamente.
- Genera il CSR manualmente. L’opzione migliore è creare il CSR sullo stesso server su cui verrà eseguito il tuo certificato SSL. Scegli il tutorial per la tua piattaforma:
Se disponi solo di un load balancer e non hai un server web di origine su cui eseguire il comando, puoi creare il tuo CSR e la chiave privata con lo strumento OpenSSL:
openssl req -new -newkey rsa:2048 -nodes -keyout yoursite.key -out example.csr
Nota: sostituisci yoursite con il nome di dominio che vuoi proteggere. Questo comando scrive anche la tua chiave privata (yoursite.key); conservala con cura, perché ti servirà in seguito per importare il certificato.
Dopo aver eseguito il comando, OpenSSL scrive il CSR nel file example.csr. Apri quel file e copia l’intero blocco, comprese le righe —–BEGIN CERTIFICATE REQUEST—– e —–END CERTIFICATE REQUEST—–. Incollerai questo codice durante l’attivazione del tuo certificato SSL.
Prepara tutti i file del certificato
Prima di iniziare l’installazione, assicurati di avere tutti i file necessari per il certificato. Dopo che la Certificate Authority firma il tuo certificato SSL, invia i file di installazione alla tua casella di posta. Ecco cosa ti serve:
- Il tuo certificato principale, rilasciato per il nome di dominio che vuoi proteggere.
- Il bundle CA (la catena dei certificati intermedi) fornito dalla tua Certificate Authority.
- La tua chiave privata.
Il tuo certificato SSL e il bundle CA arrivano nell’archivio ZIP che la CA ti ha inviato. La chiave privata è quella che hai generato insieme al tuo codice CSR; resta nella stessa posizione in cui hai creato il CSR.
Un’ultima cosa da controllare è il formato dei tuoi file. ACM e IAM accettano solo file codificati in PEM, quindi assicurati che il tuo certificato, la catena e la chiave privata siano in formato PEM. PEM è un formato di testo che può avere diverse estensioni di file (.pem, .key, .cer, .crt e altre); un file PEM inizia con una riga come —–BEGIN CERTIFICATE—–. La chiave privata deve essere non crittografata: ACM rifiuta una chiave protetta da password o passphrase.
Se hai ricevuto i tuoi file in un altro formato, come PFX/PKCS#12, convertili prima in PEM. Puoi farlo con i comandi OpenSSL. Una volta che i tuoi file sono in formato PEM, sei pronto per installare il certificato.
Installare un certificato SSL in AWS Certificate Manager (ACM)
ACM è il luogo consigliato per archiviare i certificati destinati ai servizi gestiti da AWS. Puoi importare il tuo certificato di terze parti tramite la console o la CLI.
Opzione A: Importazione dalla console ACM
- Apri la console AWS e vai su Certificate Manager. Verifica di trovarti nella Regione corretta (in alto a destra). Importa il certificato nella stessa Regione del servizio che lo utilizzerà. Per CloudFront, usa US East (N. Virginia), us-east-1.
- Scegli Import certificate.
- In Certificate body, incolla il tuo certificato principale (il blocco che inizia con —–BEGIN CERTIFICATE—–).
- In Certificate private key, incolla la tua chiave privata non crittografata (il blocco che inizia con —–BEGIN PRIVATE KEY—– o —–BEGIN RSA PRIVATE KEY—–).
- In Certificate chain, incolla il tuo bundle CA (i certificati intermedi).
- Scegli Next, aggiungi eventuali tag, quindi scegli Import.
Opzione B: Importazione con AWS CLI
Esegui il comando seguente per caricare il tuo certificato in ACM. Nota il prefisso fileb://: indica alla CLI di leggere ogni file come byte grezzi, formato richiesto da ACM.
aws acm import-certificate
--certificate fileb://example.crt
--private-key fileb://example.key
--certificate-chain fileb://example-bundle.crt
Nota: sostituisci ogni nome di file example con il nome effettivo del tuo file. Se l’importazione ha successo, la CLI restituisce l’ARN (Amazon Resource Name) del certificato. Ti serve questo identificativo per collegare il certificato a un servizio. Ecco l’elenco completo dei comandi ACM per gestire ulteriormente il tuo certificato.
Avvertenze importanti:
- I certificati importati non si rinnovano automaticamente. ACM rinnova automaticamente solo i certificati che emette direttamente. Sei responsabile del monitoraggio della data di scadenza di un certificato importato e della re-importazione di uno nuovo prima che scada (AWS consiglia almeno 24 ore prima della scadenza). Ri-importare lo stesso certificato ACM mantiene le associazioni ai servizi esistenti, quindi il load balancer o la distribuzione continua a usarlo senza ulteriori modifiche.
- La Regione è importante. Un certificato ACM è regionale. Importalo nella stessa Regione del load balancer o del servizio che lo utilizzerà. CloudFront accetta solo certificati provenienti da us-east-1.
Installare un certificato SSL in AWS IAM (metodo legacy)
L’archivio certificati IAM è il metodo più vecchio e AWS raccomanda ACM per le nuove implementazioni. Usa IAM solo quando un servizio o una Regione non supporta ACM, oppure quando ti serve specificamente l’archivio IAM (ad esempio, in certe configurazioni CloudFront, dove il percorso deve iniziare con /cloudfront/). Carica il certificato su IAM con:
aws iam upload-server-certificate
--server-certificate-name certificate-name
--certificate-body file://example.crt
--certificate-chain file://example-bundle.crt
--private-key file://example.key
Sostituisci i valori come indicato di seguito:
- –server-certificate-name: un nome personalizzato facile da ricordare, ad esempio il tuo nome di dominio. Usa solo caratteri alfanumerici maiuscoli e minuscoli; non sono ammessi spazi.
- –certificate-body: il nome del file del tuo certificato SSL principale.
- –certificate-chain: il nome del file del tuo bundle CA.
- –private-key: il nome del file della tua chiave privata.
Il certificato, la chiave privata e la catena devono essere tutti codificati in PEM, e la chiave privata deve corrispondere al certificato. Se il caricamento ha successo, la CLI restituisce i metadati del certificato del server, tra cui il percorso, il nome, l’ID, l’ARN, la data di caricamento e la data di scadenza. Per ulteriore assistenza sulla gestione SSL e la risoluzione dei problemi, consulta la guida ufficiale di Amazon.
Collegare il certificato in ELB (Elastic Load Balancing)
Importare il certificato in ACM o IAM non lo rende ancora attivo. Il certificato diventa attivo solo quando colleghi il suo ARN a un servizio. Questa sezione presuppone che tu abbia già importato il certificato e voglia creare o aggiornare i listener HTTPS su un load balancer esistente. Ti serviranno l’ARN del tuo certificato e il nome o l’ARN del load balancer.
Classic Load Balancer
Usa il comando seguente per creare un listener HTTPS su un Classic Load Balancer e assegnargli il certificato:
aws elb create-load-balancer-listeners
--load-balancer-name my-load-balancer
--listeners "Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80,SSLCertificateId=ARN"
Sostituisci ARN con l’ARN del tuo certificato ottenuto da ACM o IAM. Se hai già un listener HTTPS e vuoi solo sostituire il certificato con uno nuovo, usa:
aws elb set-load-balancer-listener-ssl-certificate
--load-balancer-name my-load-balancer
--load-balancer-port 443
--ssl-certificate-id NewARN
Sostituisci NewARN con l’ARN del nuovo certificato. Ecco la gamma completa dei comandi ELB, e la guida ufficiale di Amazon sui listener HTTPS per il Classic Load Balancer.
Application Load Balancer
Esegui il comando seguente per creare un listener HTTPS su un Application Load Balancer. Il valore –ssl-policy qui sotto seleziona una policy di sicurezza che supporta TLS 1.3 e TLS 1.2:
aws elbv2 create-listener
--load-balancer-arn my-load-balancer-arn
--protocol HTTPS
--port 443
--certificates CertificateArn=my-certificate-arn
--ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06
--default-actions Type=forward,TargetGroupArn=my-target-group-arn
Puoi trovare i valori di my-load-balancer-arn e my-target-group-arn eseguendo:
aws elbv2 describe-target-groups
Questo mostra i load balancer e i target group pertinenti nel tuo account. Per aggiungere un nuovo certificato a un listener HTTPS esistente, usa:
aws elbv2 modify-listener
--listener-arn my-https-listener-arn
--certificates CertificateArn=my-new-certificate-arn
Puoi trovare il valore di my-https-listener-arn con:
aws elbv2 describe-listeners
--load-balancer-arn my-load-balancer-arn
Consulta il riferimento dei comandi elbv2 per gestire ulteriormente il tuo Application Load Balancer.
Testare l’installazione SSL
Naviga sulla versione HTTPS del tuo dominio e verifica che sia presente il lucchetto. Cliccaci sopra per controllare i dettagli del certificato. Per un test più approfondito, usa il nostro SSL Checker: esegue la scansione della tua installazione e crea un rapporto immediato. Puoi anche verificare il certificato dalla riga di comando:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Questo stampa l’emittente e le date di validità del certificato servito dal load balancer. Se hai importato un nuovo certificato ma vedi ancora quello vecchio, verifica che il listener punti al nuovo ARN e che tu stia testando la Regione e l’endpoint corretti.
Domande frequenti
Non lo installi su un singolo server. Importi il certificato in AWS Certificate Manager (ACM), quindi colleghi l’ARN risultante a un servizio gestito che termina la connessione TLS, come un Application o Classic Load Balancer, una distribuzione CloudFront, o un dominio personalizzato di API Gateway.
No. ACM rinnova automaticamente solo i certificati che emette direttamente. Un certificato di terze parti importato deve essere riemesso e reimportato prima della scadenza. Ri-importare lo stesso certificato ACM mantiene le sue associazioni ai servizi, quindi il load balancer continua a servire il certificato rinnovato senza ulteriori modifiche.
Usa ACM. L’archivio certificati IAM è un metodo legacy che AWS mantiene principalmente per compatibilità con le versioni precedenti e per i casi non coperti da ACM. Per la maggior parte delle configurazioni, inclusi i load balancer e CloudFront, ACM è l’opzione consigliata.
Il motivo più comune è che la chiave è crittografata. ACM accetta solo una chiave privata non crittografata, codificata in PEM, che corrisponda al certificato. Rimuovi prima la passphrase, quindi importa. Assicurati che tutte e tre le parti (certificato, catena e chiave) siano codificate in PEM.
Importalo nella stessa Regione del load balancer o del servizio che lo utilizzerà, poiché i certificati ACM sono regionali. CloudFront è l’eccezione: accetta solo certificati importati in US East (N. Virginia), us-east-1.
Risparmia il 10% sui certificati SSL ordinando oggi stesso da SSL Dragon!
Emissione rapida, crittografia avanzata, affidabilità del browser al 99,99%, assistenza dedicata e garanzia di rimborso entro 25 giorni. Codice coupon: SAVE10


