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à.
Proteggi la tua istanza LAMP di Lightsail con i certificati SSL Let's Encrypt
Amazon Lightsail semplifica la protezione di siti Web e applicazioni con 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 jolly Let's Encrypt tramite Certbot e integrarlo con l'istanza LAMP.
Importante
-
La distribuzione Linux usata dalle istanze Bitnami è stata modificata da Ubuntu a Debian nel luglio 2020. A causa di questa modifica, alcune fasi descritte in questo tutorial variano a seconda della distribuzione Linux dell'istanza. Tutte le istanze del progetto Bitnami create dopo tale modifica usano la distribuzione Debian di Linux. Le istanze create precedentemente, continueranno a utilizzare la distribuzione Ubuntu di Linux. Per verificare la distribuzione dell'istanza, esegui il comando
uname -a
. La risposta mostrerà Ubuntu o Debian come distribuzione Linux dell'istanza. -
Bitnami sta modificando la struttura dei file per la maggior parte degli stack. I percorsi dei file in questo tutorial possono variare a seconda che lo stack Bitnami utilizzi pacchetti di sistema Linux nativi (Approccio A) o se si tratti di un'installazione autonoma (Approach B). Per identificare il tipo di installazione Bitnami e quale approccio seguire, eseguire il seguente comando:
test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."
Indice
Fase 1: completamento dei prerequisiti
Completa i seguenti prerequisiti qualora non siano già stati soddisfatti:
-
Crea un'istanza LAMP in Lightsail. Per ulteriori informazioni, consulta Creazione di un'istanza.
-
Registra un nome di dominio e ottieni l'accesso amministrativo per modificare i record DNS. Per ulteriori informazioni, consulta Amazon Lightsail DNS.
Nota
Ti consigliamo di gestire i record DNS del tuo dominio utilizzando una zona DNS Lightsail. Per ulteriori informazioni, consulta Creazione di 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 su come configurare PuTTY, consulta Download e configurazione di PuTTY per connettersi tramite SSH.
Dopo aver completato i prerequisiti, procedi alla prossima sezione di questo tutorial.
Fase 2: installazione di Certbot sull'istanza
Certbot è un client utilizzato per richiedere un certificato Let's Encrypt e distribuirlo in un server Web. Let's Encrypt utilizza il protocollo ACME per il rilascio di certificati e Certbot è un client abilitato per ACME che interagisce con Let's Encrypt.
Per installare Certbot sulla tua istanza Lightsail
-
Accedi alla console Lightsail
. -
Nella 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 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
Nota
Se si verifica un errore
Could not get lock
durante l'esecuzione del comandosudo apt-get install
, attendi circa 15 minuti e riprova. Questo errore potrebbe essere causato da un processo cron che utilizza lo strumento di gestione del pacchetto Apt per l'installazione automatica di aggiornamenti. -
Immetti il seguente comando per aggiungere Certbot al repository apt locale:
Nota
La fase 5 si applica solo alle istanze che utilizzano la distribuzione Ubuntu di Linux. Salta questa fase se l'istanza usa la distribuzione Debian di Linux.
sudo apt-add-repository ppa:certbot/certbot -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 -y
Certbot è ora installato sulla tua istanza Lightsail.
-
Tieni aperta la finestra del terminale SSH basato su browser, a cui accederai nuovamente in una fase successiva di questo tutorial. Passa alla prossima sezione di questo tutorial.
Fase 3: richiesta di un certificato jolly SSL Let's Encrypt
Inizia il processo di richiesta di un certificato da 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 jolly SSL Let's Encrypt
-
Nella stessa finestra del terminale SSH basato su browser utilizzato nella fase 2 di questo tutorial, immetti i seguenti comandi per impostare una variabile di ambiente per il dominio. È ora possibile copiare e incollare in modo più efficiente i comandi per ottenere il certificato.
DOMAIN=
Domain
WILDCARD=*.$DOMAIN
Nel comando sostituire
Domain
con il nome di dominio registrato.Esempio:
DOMAIN=
example.com
WILDCARD=*.$DOMAIN
-
Immetti il seguente comando per confermare che le variabili restituiscono i valori corretti:
echo $DOMAIN && echo $WILDCARD
Viene 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
-
Quando richiesto, immetti l'indirizzo e-mail, che verrà utilizzato per le notifiche di rinnovo e di sicurezza.
-
Leggi i termini del servizio Let's Encrypt. Al termine, premi A in caso di accettazione. In caso contrario, non è possibile 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 richiede ora di verificare la proprietà 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.
-
Mantieni aperta la sessione SSH basata su browser Lightsail: tornerai ad essa più avanti in questo tutorial. Passa alla prossima sezione di questo tutorial.
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
-
Nella home page di Lightsail, scegli la scheda Domains & DNS (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.com
nella casella di testo, quindi Lightsail aggiunge automaticamente la parte_acme-challenge
.example.com
durante il salvataggio del record. -
Selezionare 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 prossima sezione 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 record TXT sono propagati nel DNS di Internet
-
Apri una nuova finestra del browser e accedi a https://mxtoolbox.com/TXTLookup.aspx
. -
Immetti il testo seguente nella casella di testo.
_acme-challenge.
Domain
Sostituire
Domain
con il nome di dominio registrato.Esempio:
_acme-challenge.
example.com
-
Scegli TXT Lookup (Ricerca TXT) per eseguire il controllo.
-
Viene visualizzata una delle seguenti risposte:
-
Se i record 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 record 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 LAMP e completa la richiesta del certificato Let's Encrypt. Certbot salva i file di certificato SSL, chain e chiave in una directory specifica sull'istanza LAMP.
Per completare la richiesta di certificato SSL Let's Encrypt
-
Nella sessione SSH basata su browser Lightsail per la tua istanza LAMP, 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/
.Domain
/Domain
(Dominio) sarà il tuo nome di dominio registrato, ad esempio/etc/letsencrypt/live/
.example.com
/ -
Annota la data di scadenza specificata nel messaggio. Verrà utilizzata per rinnovare il certificato entro tale data.
-
Dopo aver installato il certificato di SSL Let's Encrypt, procedi alla prossima sezione di questo tutorial.
Fase 7: Creazione di collegamenti ai file del certificato Let's Encrypt nella directory del server Apache
Crea collegamenti ai file del certificato SSL Let's Encrypt nella directory del server Apache sull'istanza LAMP. Inoltre, esegui il backup dei certificati esistenti, in caso siano necessari in un secondo momento.
Creare collegamenti ai file del certificato Let's Encrypt nella directory del server Apache
-
Nella sessione SSH basata su browser Lightsail per la tua istanza LAMP, inserisci il seguente comando per interrompere i servizi dello stack LAMP sottostanti:
sudo /opt/bitnami/ctlscript.sh stop
Noterai una risposta simile alla seguente:
-
Immetti il seguente comando per impostare una variabile di ambiente per il dominio.
DOMAIN=
Domain
Nel comando sostituire
Domain
con il nome di dominio registrato.Esempio:
DOMAIN=
example.com
-
Immetti il seguente comando per confermare che le variabili restituiscono i valori corretti:
echo $DOMAIN
Viene visualizzato un risultato simile a quello seguente:
-
Immetti i seguenti comandi singolarmente per rinominare i file del certificato esistenti come backup. Fai riferimento a Importante blocca all'inizio di questo tutorial per informazioni sulle diverse distribuzioni e strutture di file.
-
Per le distribuzioni Debian Linux
Approccio A (installazioni Bitnami che utilizzano pacchetti di sistema):
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
Approach B (installazioni Bitnami autonome):
sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
-
Per le istanze meno recenti che usano la distribuzione Ubuntu di Linux:
sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.crt /opt/bitnami/apache/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.key /opt/bitnami/apache/conf/bitnami/certs/server.key.old
-
-
Immetti i seguenti comandi singolarmente per creare collegamenti ai file del certificato Let's Encrypt nella directory del server apache2. Fai riferimento a Importante blocca all'inizio di questo tutorial per informazioni sulle diverse distribuzioni e strutture di file.
-
Per le distribuzioni Debian Linux
Approccio A (installazioni Bitnami che utilizzano pacchetti di sistema):
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache2/conf/bitnami/certs/server.key
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/bitnami/certs/server.crt
Approach B (installazioni Bitnami autonome):
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache2/conf/server.key
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/server.crt
-
Per le istanze meno recenti che usano la distribuzione Ubuntu di Linux:
sudo ln -s /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache/conf/bitnami/certs/server.key
sudo ln -s /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache/conf/bitnami/certs/server.crt
-
-
Immetti il seguente comando per avviare i servizi sottostanti dello stack LAMP interrotti in precedenza:
sudo /opt/bitnami/ctlscript.sh start
Viene visualizzato un risultato simile a quello seguente:
L'istanza LAMP ora è configurata per utilizzare la crittografia SSL. Tuttavia, il traffico non viene automaticamente reindirizzato da HTTP a HTTPS.
-
Passa alla prossima sezione di questo tutorial.
Fase 8: configurazione del reindirizzamento da HTTP a HTTPS per l'applicazione Web
È possibile configurare un reindirizzamento da HTTP a HTTPS per l'istanza LAMP. Il reindirizzamento automatico da HTTP a HTTPS rende il sito accessibile solo per i tuoi clienti tramite SSL, anche quando si connettono tramite HTTP.
Configurazione del reindirizzamento da HTTP a HTTPS per l'applicazione Web
-
Nella sessione SSH basata su browser Lightsail per la tua istanza LAMP, inserisci il seguente comando per modificare il file di configurazione del server web Apache utilizzando l'editor di testo Vim:
sudo vim /opt/bitnami/apache2/conf/bitnami/bitnami.conf
Nota
Questo tutorial impiega Vim a scopo dimostrativo; tuttavia, è possibile utilizzare qualsiasi editor di testo per eseguire questa fase.
-
Premi il tasto
i
per accedere alla modalità di inserimento nell'editor Vim. -
Nel file, immetti il testo seguente tra
DocumentRoot "/opt/bitnami/apache2/htdocs"
e<Directory "/opt/bitnami/apache2/htdocs">
:RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
Il risultato sarà simile al seguente:
-
Premi il tasto ESC, immetti
:wq
per scrivere (salvare) le modifiche e chiudi Vim. -
Immetti il seguente comando per riavviare i servizi sottostanti dello stack LAMP e applicare le modifiche:
sudo /opt/bitnami/ctlscript.sh restart
L'istanza LAMP è ora configurata per reindirizzare automaticamente le connessioni da HTTP a HTTPS. Quando un visitatore accede a
http://www.example.com
, viene automaticamente reindirizzato all'indirizzohttps://www.example.com
crittografato.
Fase 9: Rinnovo dei 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 i certificati Let's Encrypt, esegui il comando utilizzato originariamente per ottenerli. Ripeti le fasi indicate nella sezione Richiesta di un certificato jolly SSL Let's Encrypt di questo tutorial.