View a markdown version of this page

Abilita HTTPS sulla tua istanza Nginx con Let's Encrypt e Certbot - Amazon Lightsail

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:

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
  1. Accedi alla console Lightsail.

  2. Nella scheda Istanze della home page di Lightsail, scegli l'icona di connessione rapida SSH per l'istanza a cui desideri connetterti.

    Connessione rapida SSH sulla home page di Lightsail.
  3. Dopo aver connesso la sessione SSH basata su browser Lightsail, inserisci il seguente comando per aggiornare i pacchetti sull'istanza:

    sudo apt-get update
  4. 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
  5. Immetti il seguente comando per aggiornare l'apt in modo da includere il nuovo repository:

    sudo apt-get update -y
  6. Immetti il seguente comando per installare Certbot:

    sudo apt-get install certbot -y

    Certbot è 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
  1. 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 domain con il nome del dominio registrato.

    DOMAIN=domain WILDCARD=*.$DOMAIN

    Esempio:

    DOMAIN=example.com WILDCARD=*.$DOMAIN
  2. 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:

    Conferma delle variabili di ambiente del dominio.
  3. 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
  4. Inserisci il tuo indirizzo e-mail quando richiesto, perché viene utilizzato per gli avvisi di rinnovo e di sicurezza.

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

  6. Rispondi di conseguenza alla richiesta di condivisione dell'indirizzo e-mail e all'avviso sulla registrazione dell'indirizzo IP.

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

    Registri TXT per i certificati Let's Encrypt.

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
  1. Nel riquadro di navigazione a sinistra, scegli Domini e DNS.

  2. Nella sezione DNS zones (zone DNS) della pagina, scegli la zona DNS per il dominio specificato nella richiesta di certificato Certbot.

  3. Nell'editor della zona DNS, scegli la scheda Record DNS.

  4. Scegli Aggiungi record.

  5. Nel menu a discesa Tipo di registro, scegli Registro TXT.

  6. 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 _acme-challenge.example.com è necessario semplicemente inserire _acme-challenge nella casella di testo, quindi Lightsail aggiunge automaticamente la parte .example.com durante il salvataggio del record.

  7. Scegli Save (Salva).

  8. Ripeti i passaggi da 4 a 7 per aggiungere il secondo set di registri TXT specificato dalla richiesta di certificato Let's Encrypt.

  9. 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
  1. Apri una nuova finestra del browser e vai a. https://mxtoolbox.com/TXTLookup.aspx

  2. Immetti il testo seguente nella casella di testo. Assicurati di sostituire domain con il tuo dominio.

    _acme-challenge.domain

    Esempio:

    _acme-challenge.example.com
    MxToolbox Ricerca di record TXT.
  3. Scegli TXT Lookup (Ricerca TXT) per eseguire il controllo.

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

      Conferma che i registri TXT sono propagati.
    • 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
  1. 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:

    Richiesta di certificato Let's Encrypt riuscita.

    Il messaggio conferma che i file di certificato, chain e chiave sono archiviati nella directory /etc/letsencrypt/live/domain/. Assicurati di sostituire domain con il tuo dominio, ad esempio /etc/letsencrypt/live/example.com/.

  2. Annota la data di scadenza specificata nel messaggio. Verrà utilizzata per rinnovare il certificato entro tale data.

    Data di rinnovo del certificato Let's Encrypt.

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
  1. 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-fpm

    Noterai una risposta simile alla seguente:

    I servizi di istanza Nginx sono stati interrotti.
  2. 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 domain con il nome del dominio registrato.

    DOMAIN=domain

    Esempio:

    DOMAIN=example.com
  3. Immetti il seguente comando per confermare che le variabili restituiscono i valori corretti:

    echo $DOMAIN

    Viene visualizzato un risultato simile a quello seguente:

    Conferma della variabile di ambiente del dominio.
  4. 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 DOMAIN variabile nel passaggio 3, esegui di DOMAIN=example.com nuovo, sostituendola example.com con 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
  5. Dopo aver sovrascritto il default.conf file, esegui i comandi seguenti per verificare la configurazione e riavvia Nginx

    sudo nginx -t sudo systemctl restart nginx sudo systemctl restart mariadb sudo systemctl restart php8.2-fpm

    Viene visualizzato un risultato simile a quello seguente:

    I servizi di istanza Nginx sono stati avviati.

    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.