Ricerca nel sito web

Come proteggere Nginx con Let's Encrypt su CentOS 8


Fondato nell'aprile 2016 dalla Electronic Frontier Foundation (EFF), Let's Encrypt è un certificato digitale gratuito e automatizzato che fornisce la crittografia TLS per i siti Web senza alcun costo.

L'obiettivo del certificato Let's Encrypt è automatizzare la convalida, la creazione, la firma e il rinnovo automatico del certificato di sicurezza. Questo certificato consente connessioni crittografate ai server web utilizzando il protocollo HTTPS in modo semplice, senza problemi e senza alcuna complessità. Il certificato è valido solo per 90 giorni dopo i quali è possibile attivare il rinnovo automatico.

Lettura consigliata: Come proteggere Apache con il certificato SSL Let's Encrypt su CentOS 8

In questo articolo, dimostreremo come installare Let's Encrypt per ottenere un certificato SSL gratuito per proteggere il server web Nginx su CentOS 8 ( le stesse istruzioni funzionano anche su RHEL 8). Ti spiegheremo anche come rinnovare automaticamente il tuo certificato SSL.

Prerequisiti

Prima di procedere, assicurati di aver controllato quanto segue.

1. Un nome di dominio completamente qualificato (FQDN) che punta a un indirizzo IP dedicato del server web. Questo deve essere configurato nell'area client del tuo provider di web hosting DNS. Per questo tutorial, utilizziamo il nome di dominio linuxtechwhiz che punta all'indirizzo IP 34.70.245.117.

2. Puoi anche confermarlo eseguendo una ricerca in avanti utilizzando il comando dig come mostrato.

dig linuxtechwhiz.info

3. Nginx installato e in esecuzione sul server web. Puoi confermarlo accedendo al terminale ed eseguendo il comando seguente. Se Nginx non è installato, segui il nostro articolo per installare Nginx su CentOS 8.

sudo systemctl status nginx

4. Puoi anche verificare visitando l'URL del server web su un browser web.

http://server-IP-or-hostname

Dall'URL possiamo vedere chiaramente che il sito non è sicuro e quindi non crittografato. Ciò implica che qualsiasi richiesta effettuata al server Web può essere intercettata e include informazioni critiche e riservate come nomi utente, password, numeri di previdenza sociale e informazioni sulla carta di credito, per citarne alcuni.

Ora sporchiamoci le mani e installiamo Let's Encrypt.

Passaggio 1. Installa Certbot in CentOS 8

Per installare il certificato Let's Encrypt, devi prima di tutto avere certbot installato. Si tratta di un client estensibile che recupera un certificato di sicurezza da Let's Encrypt Authority e consente di automatizzare la convalida e la configurazione del certificato per l'utilizzo da parte del server web.

Scarica certbot utilizzando il comando curl.

sudo curl -O https://dl.eff.org/certbot-auto

Successivamente, sposta il certificato nella directory /usr/local/bin.

sudo mv certbot-auto /usr/local/bin/certbot-auto

Successivamente, assegna l'autorizzazione al file certbot come mostrato.

chmod 0755 /usr/local/bin/certbot-auto

Passaggio 2. Configura Nginx Server Block

Un blocco server in Nginx è l'equivalente di un host virtuale in Apache. L'impostazione dei blocchi server non solo consente di impostare più siti Web in un server, ma consente anche a certbot di dimostrare la proprietà del dominio all'Autorità di certificazione – CA.

Per creare un blocco server, esegui il comando mostrato.

sudo vim /etc/nginx/conf.d/www.linuxtechwhiz.info

Assicurati di sostituire il nome di dominio con il tuo nome di dominio. Quindi incolla la configurazione qui sotto.

server {
   server_name www.linuxtechwhiz.info;
   root /opt/nginx/www.linuxtechwhiz.info;

   location / {
       index index.html index.htm index.php;
   }

   access_log /var/log/nginx/www.linuxtechwhiz.info.access.log;
   error_log /var/log/nginx/www.linuxtechwhiz.info.error.log;

   location ~ \.php$ {
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Salvare il file e uscire dall'editor di testo.

Passaggio 3: installa il certificato Lets Encrypt su CentOS 8

Ora utilizza il comando certbot per inizializzare il recupero e la configurazione del certificato di sicurezza Let's Encrypt.

sudo /usr/local/bin/certbot-auto --nginx

Questo comando eseguirà e installerà più pacchetti Python e le relative dipendenze come mostrato.

Ciò sarà successivamente seguito da un messaggio interattivo come mostrato:

Se tutto è andato bene, alla fine dovresti vedere un messaggio di congratulazioni.

Per confermare che il tuo sito Nginx è crittografato, ricarica la pagina web e osserva il simbolo del lucchetto all'inizio dell'URL. Ciò indica che il sito è protetto utilizzando una crittografia SSL/TLS.

Per ottenere maggiori informazioni sul certificato di sicurezza, fai clic sul simbolo del lucchetto e seleziona l'opzione "Certificato".

Ulteriori informazioni sul certificato di sicurezza verranno visualizzate come mostrato di seguito.

Inoltre, per testare la forza del certificato di sicurezza, vai su https://www.ssllabs.com/ssltest/ e trova un'analisi più accurata e approfondita dello stato del certificato di sicurezza.

Passaggio 4. Rinnovare il certificato Let's Encrypt

Come abbiamo visto in precedenza, il certificato di sicurezza è valido solo per una durata di 90 giorni e deve essere rinnovato prima della scadenza.

Puoi simulare o testare il processo di rinnovo del certificato eseguendo il comando:

sudo /usr/local/bin/certbot-auto renew --dry-run

Conclusione

Con questo si conclude questo tutorial sulla protezione di Nginx con Let's Encrypt su CentOS 8. Let's Encrypt offre un modo efficace e senza problemi per proteggere il tuo server web Nginx che altrimenti sarebbe un'operazione complessa da eseguire manualmente.

Il tuo sito ora dovrebbe essere completamente crittografato. A poche settimane dalla data di scadenza del certificato, EFF ti avviserà via email di rinnovare il certificato per evitare interruzioni che potrebbero verificarsi a causa di un certificato scaduto. Per oggi è tutto ragazzi!