Ricerca nel sito web

Come proteggere Apache con il certificato SSL gratuito Let's Encrypt su Ubuntu e Debian


Hai un nome di dominio appena registrato e il tuo server web funziona con un certificato autofirmato SSL emesso da te che causa grattacapi ai tuoi clienti mentre visitano il dominio a causa degli errori generati dal certificato? Hai un budget limitato e non puoi permetterti di acquistare un certificato emesso da una CA attendibile? È qui che entra in scena il software Let's Encrypt e salva la situazione.

Se stai cercando di installare Let's Encrypt per Apache o Nginx su RHEL, CentOS, Fedora o Ubuntu e Debian, segui le guide riportate di seguito:

Configurazione Crittografiamo per proteggere Apache su RHEL e CentOS 7/6

Configurazione Crittografiamo per proteggere Nginx su Ubuntu e Debian

Let's Encrypt è una Autorità di certificazione (CA) che ti facilita nell'acquisizione dei certificati SSL/TLS gratuiti necessari per i tuoi server per funzionare in modo sicuro, offrendo un'esperienza di navigazione fluida per i tuoi utenti, senza errori.

Test dell'ambiente campione

Tutti i passaggi necessari per generare un certificato sono, per la maggior parte, automatizzati per il server web Apache. Tuttavia, nonostante il software del tuo server web, alcuni passaggi devono essere eseguiti manualmente e i certificati devono essere installati manualmente, soprattutto nel caso in cui il contenuto del tuo sito web sia servito dal demone Nginx.

Questo tutorial ti guiderà su come installare il software Let's Encrypt su Ubuntu o Debian, generare e ottenere un certificato gratuito per il tuo dominio e come è possibile installare manualmente il certificato nei server web Apache e Nginx.

Requisiti

  1. Un nome di dominio pubblico registrato con record A validi per puntare all'indirizzo IP esterno del tuo server. Nel caso in cui il tuo server sia dietro un firewall, prendi le misure necessarie per garantire che il tuo server sia accessibile a livello mondiale da Internet aggiungendo regole di port forwarding sul lato router.
  2. Server web Apache installato con modulo SSL abilitato e hosting virtuale abilitato, nel caso in cui ospiti più domini o sottodomini.

Passaggio 1: installa Apache e abilita il modulo SSL

1. Se non hai già installato il server web Apache sul tuo computer, esegui il seguente comando per installare il demone Apache.

sudo apt-get install apache2

2. L'attivazione del modulo SSL per il server web Apache su Ubuntu o Debian è abbastanza semplice. Abilita il modulo SSL e attiva l'host virtuale SSL predefinito di Apache immettendo i comandi seguenti:

sudo a2enmod ssl
sudo a2ensite default-ssl.conf
sudo service apache2 restart
or
sudo systemctl restart apache2.service

I visitatori ora possono accedere al tuo nome di dominio tramite il protocollo HTTPS. Tuttavia, poiché il certificato autofirmato del tuo server non è emesso da un'autorità di certificazione attendibile, sui browser verrà visualizzato un avviso di errore come illustrato nell'immagine seguente.

https://yourdomain.com

Passaggio 2: installazione gratuita di Let's Encrypt Client

3. Per installare il software Let's Encrypt sul tuo server devi avere il pacchetto git installato sul tuo sistema. Emetti il seguente comando per installare il software git:

sudo apt-get -y install git

4. Successivamente, scegli una directory dalla gerarchia di sistema in cui desideri clonare il repository git Let's Encrypt. In questo tutorial utilizzeremo la directory /usr/local/ come percorso di installazione per Let's Encrypt.

Passa alla directory /usr/local e installa il client letsencrypt immettendo i seguenti comandi:

cd /usr/local
sudo git clone https://github.com/letsencrypt/letsencrypt

Passaggio 4: genera un certificato SSL per Apache

5. Il processo per ottenere un certificato SSL per Apache è automatizzato grazie al plugin Apache. Genera il certificato emettendo il seguente comando sul tuo nome di dominio. Fornisci il tuo nome di dominio come parametro per il flag -d.

cd /usr/local/letsencrypt
sudo ./letsencrypt-auto --apache -d your_domain.tld

Ad esempio, se hai bisogno che il certificato operi su più domini o sottodomini, aggiungili tutti utilizzando il flag -d per ogni record DNS extra valido dopo il nome del dominio di base.

sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld 

6. Accetta la licenza, inserisci un indirizzo email per il recupero e scegli se i clienti possono navigare nel tuo dominio utilizzando entrambi i protocolli HTTP (sicuro e non sicuro) o reindirizzare tutte le richieste non sicure su HTTPS.

7. Una volta terminato con successo il processo di installazione, sulla tua console viene visualizzato un messaggio di congratulazioni che ti informa sulla data di scadenza e su come puoi testare la configurazione, come illustrato negli screenshot seguenti.

Ora dovresti essere in grado di trovare i file del tuo certificato nella directory /etc/letsencrypt/live con un semplice elenco di directory.

sudo ls /etc/letsencrypt/live

8. Infine, per verificare lo stato del tuo certificato SSL visita il seguente link. Sostituisci il nome di dominio di conseguenza.

https://www.ssllabs.com/ssltest/analyze.html?d=your_domain.tld&latest

Inoltre, i visitatori ora possono accedere al tuo nome di dominio utilizzando il protocollo HTTPS senza che venga visualizzato alcun errore nei loro browser web.

Passaggio 4: il rinnovo automatico consente di crittografare i certificati

9. Per impostazione predefinita, i certificati emessi dall'autorità Let's Encrypt sono validi per 90 giorni. Per rinnovare il certificato prima della data di scadenza è necessario eseguire nuovamente manualmente il client utilizzando i flag e i parametri esatti come in precedenza.

sudo ./letsencrypt-auto --apache -d your_domain.tld

Oppure in caso di più sottodomini:

sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld

10. Il processo di rinnovo del certificato può essere automatizzato per essere eseguito in meno di 30 giorni prima della data di scadenza utilizzando il demone cron di pianificazione Linux.

sudo crontab -e

Aggiungi il seguente comando alla fine del file crontab utilizzando una sola riga:

0 1 1 */2 * cd /usr/local/letsencrypt && ./letsencrypt-auto certonly --apache --renew-by-default --apache -d domain.tld >> /var/log/domain.tld-renew.log 2>&1

11. I dettagli sul file di configurazione del dominio di rinnovo per il software Let's Encrypt sono disponibili nella directory /etc/letsencrypt/renewal/.

cat /etc/letsencrypt/renewal/caeszar.tk.conf

Dovresti anche controllare il file /etc/letsencrypt/options-ssl-apache.conf per visualizzare il nuovo file di configurazione SSL per il server web Apache.

12. Inoltre, il plugin Crittografia Apache modifica alcuni file nella configurazione del tuo server web. Per verificare quali file sono stati modificati, elencare il contenuto della directory /etc/apache2/sites-enabled.

ls /etc/apache2/sites-enabled/
sudo cat /etc/apache2/sites-enabled/000-default-le-ssl.conf

È tutto per ora! Nella prossima serie di tutorial discuteremo come ottenere e installare un certificato Let's Encrypt per il server web Nginx su Ubuntu e Debian< e anche su CentOS.