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à.
Abilita HTTPS sulla tua istanza Nginx con Let's Encrypt e Certbot
Amazon Lightsail semplifica la protezione di siti Web e applicazioni SSL/TLS utilizzando i sistemi di bilanciamento del carico Lightsail. Tuttavia, l'utilizzo di un sistema di bilanciamento del carico Lightsail potrebbe non essere generalmente la scelta giusta. Il tuo sito potrebbe non necessitare della scalabilità e della tolleranza ai guasti forniti dai sistemi di bilanciamento del carico oppure potresti voler ottimizzare i costi.
In quest'ultimo caso, potresti considerare l'utilizzo di Let's Encrypt per ottenere un certificato SSL gratuito. Se così fosse, non c'è alcun problema. Puoi integrare questi certificati con le istanze Lightsail. Questo tutorial mostra come richiedere un certificato wildcard Let's Encrypt utilizzando Certbot e integrarlo con la tua istanza Nginx.
Indice
Fase 1: completamento dei prerequisiti
Completa i seguenti prerequisiti se non l'hai già fatto:
-
Crea un'istanza Nginx in Lightsail. Per saperne di più, consulta Creare un'istanza.
-
Registra un nome di dominio e ottieni l'accesso amministrativo per modificare i record DNS. Per ulteriori informazioni, consulta DNS.
Nota
Ti consigliamo di gestire i record DNS del tuo dominio utilizzando una zona DNS Lightsail. Per ulteriori informazioni, consulta Creare una zona DNS per gestire i record DNS del dominio.
-
Utilizza il terminale SSH basato su browser nella console Lightsail per eseguire i passaggi di questo tutorial. Tuttavia, puoi anche utilizzare il tuo client SSH, ad esempio PuTTY. Per ulteriori informazioni sulla configurazione di PuTTY, consulta Scaricare e configurare PuTTY per la connessione tramite SSH in Amazon Lightsail.
Passaggio 2: installa Certbot sulla tua istanza Lightsail
Certbot è un client utilizzato per richiedere un certificato a Let's Encrypt e distribuirlo su un server web. Let's Encrypt utilizza il protocollo ACME per emettere certificati e Certbot è un ACME-enabled client che interagisce con Let's Encrypt.
Per installare Certbot sulla tua istanza Lightsail
-
Accedi alla console Lightsail
. -
Nella scheda Istanze della home page di Lightsail, scegli l'icona di connessione rapida SSH per l'istanza a cui desideri connetterti.
-
Dopo aver connesso la sessione SSH basata su browser Lightsail, inserisci il seguente comando per aggiornare i pacchetti sull'istanza:
sudo apt-get update -
Immetti il seguente comando per installare il pacchetto delle proprietà del software. Gli sviluppatori di Certbot utilizzano un Personal Package Archive (PPA) per distribuire Certbot. Il pacchetto di proprietà del software rende più efficiente l'utilizzo di PPA.
sudo apt-get install software-properties-common -y -
Immetti il seguente comando per aggiornare l'apt in modo da includere il nuovo repository:
sudo apt-get update -y -
Immetti il seguente comando per installare Certbot:
sudo apt-get install certbot -yCertbot è ora installato sulla tua istanza Lightsail.
Fase 3: richiesta di un certificato jolly SSL Let's Encrypt
Inizia il processo di richiesta di un certificato a Let's Encrypt. Tramite Certbot, richiedi un certificato jolly, che ti consente di utilizzare un unico certificato per un dominio e i relativi sottodomini. Ad esempio, un singolo certificato jolly funziona per il dominio example.com di primo livello, per blog.example.com e per i sottodomini stuff.example.com.
Per richiedere un certificato wildcard SSL Let's Encrypt
-
Nella stessa finestra del terminale SSH basata su browser utilizzata nel passaggio precedente di questo tutorial, inserisci i seguenti comandi per impostare una variabile di ambiente per il tuo dominio. Assicurati di sostituire
domaincon il nome del dominio registrato.DOMAIN=domainWILDCARD=*.$DOMAINEsempio:
DOMAIN=example.com WILDCARD=*.$DOMAIN -
Immetti il seguente comando per confermare che le variabili restituiscono i valori corretti:
echo $DOMAIN && echo $WILDCARDViene visualizzato un risultato simile a quello seguente:
-
Immetti il seguente comando per avviare Certbot in modalità interattiva. Questo comando indica a Certbot di utilizzare un metodo di autorizzazione manuale con le richieste DNS di verifica della proprietà del dominio. Richiede un certificato jolly per il dominio di primo livello e per i relativi sottodomini.
sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly -
Inserisci il tuo indirizzo e-mail quando richiesto, perché viene utilizzato per gli avvisi di rinnovo e di sicurezza.
-
Leggi i termini di servizio di Let's Encrypt. Al termine, premi A in caso di accettazione. Se non sei d'accordo, non puoi ottenere un certificato Let's Encrypt.
-
Rispondi di conseguenza alla richiesta di condivisione dell'indirizzo e-mail e all'avviso sulla registrazione dell'indirizzo IP.
-
Let's Encrypt ora ti chiede di verificare di essere il proprietario del dominio specificato. Ciò avviene attraverso l'aggiunta di registri TXT ai record DNS per il dominio. Viene fornito un set di valori di registro TXT come nell'esempio seguente:
Nota
Let's Encrypt può fornire uno o più registri TXT necessario per la verifica. In questo esempio, sono stati forniti due registri TXT da utilizzare per la verifica.
Fase 4: Aggiunta di record TXT alla zona DNS del dominio
L'aggiunta di un registro TXT alla zona DNS del dominio verifica la proprietà del dominio. A scopo dimostrativo, utilizziamo la zona DNS di Lightsail. Tuttavia, la procedura potrebbe essere simile per altre zone DNS generalmente ospitate da registrar di dominio.
Nota
Per ulteriori informazioni su come creare una zona DNS Lightsail per il tuo dominio, consulta Creazione di una zona DNS per gestire i record DNS del tuo dominio in Lightsail.
Per aggiungere record TXT alla zona DNS del tuo dominio in Lightsail
-
Nel riquadro di navigazione a sinistra, scegli Domini e DNS.
-
Nella sezione DNS zones (zone DNS) della pagina, scegli la zona DNS per il dominio specificato nella richiesta di certificato Certbot.
-
Nell'editor della zona DNS, scegli la scheda Record DNS.
-
Scegli Aggiungi record.
-
Nel menu a discesa Tipo di registro, scegli Registro TXT.
-
Immetti i valori specificati dalla richiesta di certificato Let's Encrypt nei campi Nome record e Risponde con.
Nota
La console Lightsail precompila la parte di apice del dominio. Ad esempio, per aggiungere il sottodominio
è necessario semplicemente inserire_acme-challenge.example.comnella casella di testo, quindi Lightsail aggiunge automaticamente la parte_acme-challenge.example.comdurante il salvataggio del record. -
Scegli Save (Salva).
-
Ripeti i passaggi da 4 a 7 per aggiungere il secondo set di registri TXT specificato dalla richiesta di certificato Let's Encrypt.
-
Tieni aperta la finestra del browser della console Lightsail: tornerai ad essa più avanti in questo tutorial. Passa alla sezione successiva di questo tutorial.
Fase 5: conferma che i registri TXT sono propagati
Utilizzate l' MxToolbox utilità per confermare che i record TXT si siano propagati al DNS di Internet. La propagazione dei record DNS potrebbe richiedere del tempo, a seconda del provider di hosting DNS e del TTL (Time-To-Live) configurato per i record DNS. È importante completare questa operazione e confermare che i registri TXT sono propagati, prima di continuare con la richiesta del certificato Certbot. In caso contrario, la richiesta di certificato ha esito negativo.
Per confermare che i registri TXT sono propagati nel DNS di Internet
-
Apri una nuova finestra del browser e vai a. https://mxtoolbox.com/TXTLookup.aspx
-
Immetti il testo seguente nella casella di testo. Assicurati di sostituire
con il tuo dominio.domain_acme-challenge.domainEsempio:
_acme-challenge.example.com
-
Scegli TXT Lookup (Ricerca TXT) per eseguire il controllo.
-
Viene visualizzata una delle seguenti risposte:
-
Se i registri TXT sono propagati nel DNS di Internet, è possibile visualizzare una risposta simile a quella mostrata nello screenshot seguente. Chiudi la finestra del browser e procedi alla prossima sezione di questo tutorial.
-
Se i registri TXT non sono propagati nel DNS di Internet, viene visualizzata la risposta DNS Record not found (Record DNS non trovato). Conferma di aver aggiunto i record DNS corretti alla zona DNS del dominio. Se sono stati aggiunti i registri corretti, attendi finché i record DNS del dominio non vengono propagati ed esegui nuovamente la ricerca TXT.
-
Fase 6: completamento della richiesta di certificato SSL Let's Encrypt
Torna alla sessione SSH basata su browser Lightsail per la tua istanza e completa la richiesta del certificato Let's Encrypt. Certbot salva il certificato SSL, la catena e i file chiave in una directory specifica dell'istanza.
Per completare la richiesta di certificato SSL Let's Encrypt
-
Nella sessione SSH basata su browser Lightsail per la tua istanza, premi Invio per continuare la richiesta del certificato SSL Let's Encrypt. In caso di esito positivo, viene visualizzata una risposta simile a quella mostrata nello screenshot seguente:
Il messaggio conferma che i file di certificato, chain e chiave sono archiviati nella directory
/etc/letsencrypt/live/. Assicurati di sostituiredomain/con il tuo dominio, ad esempiodomain/etc/letsencrypt/live/.example.com/ -
Annota la data di scadenza specificata nel messaggio. Verrà utilizzata per rinnovare il certificato entro tale data.
Passaggio 7: aggiorna la configurazione SSL in Nginx e reindirizza il traffico da HTTP a HTTPS
Per aggiornare la configurazione SSL nel file default.conf di Nginx
-
Nella sessione SSH per la tua istanza Nginx, inserisci il seguente comando per interrompere i servizi sottostanti:
sudo systemctl stop nginx sudo systemctl stop mariadb sudo systemctl stop php8.2-fpmNoterai una risposta simile alla seguente:
-
Immetti il seguente comando per impostare una variabile di ambiente per il dominio. È possibile copiare e incollare in modo più efficiente i comandi per collegare i file del certificato. Assicurati di sostituire
con il nome del dominio registrato.domainDOMAIN=domainEsempio:
DOMAIN=example.com -
Immetti il seguente comando per confermare che le variabili restituiscono i valori corretti:
echo $DOMAINViene visualizzato un risultato simile a quello seguente:
-
Esegui il comando seguente per modificare la configurazione SSL:
Nota
Se hai chiuso la finestra del terminale SSH basata sul browser dopo aver impostato la
DOMAINvariabile nel passaggio 3, esegui diDOMAIN=nuovo, sostituendolaexample.comexample.comcon il tuo dominio.sudo sed \ -i -e "s|ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem|ssl_certificate /etc/letsencrypt/live/$DOMAIN/fullchain.pem|g" \ -i -e "s|ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key|ssl_certificate_key /etc/letsencrypt/live/$DOMAIN/privkey.pem|g" \ /etc/nginx/conf.d/default.conf -
Dopo aver sovrascritto il
default.conffile, esegui i comandi seguenti per verificare la configurazione e riavvia Nginxsudo nginx -t sudo systemctl restart nginx sudo systemctl restart mariadb sudo systemctl restart php8.2-fpmViene visualizzato un risultato simile a quello seguente:
La tua istanza Nginx è ora configurata per utilizzare la crittografia SSL e il traffico viene reindirizzato da HTTP a HTTPS
Passaggio 8: rinnova i certificati Let's Encrypt ogni 90 giorni
I certificati Let's Encrypt sono validi per 90 giorni. I certificati possono essere rinnovati 30 giorni prima della scadenza. Per rinnovare il certificato Let's Encrypt, ripeti il Passaggio 3: Richiedi un certificato wildcard SSL Let's Encrypt.