GNU/Linux >> Linux Esercitazione >  >> Rocky Linux

Come installare Let's Encrypt SSL per NGINX su Rocky Linux 8

La sicurezza è una delle principali preoccupazioni per i proprietari di siti Web, in particolare se gestisci un negozio di eCommerce o un sito che accetta informazioni riservate degli utenti come nomi utente e password. Il semplice protocollo HTTP non è sicuro poiché i dati vengono inviati in testo normale e gli hacker possono intercettare le comunicazioni inviate da e verso il server web.

Per superare questo rischio, si consiglia di proteggere un server Web utilizzando un certificato TLS/SSL. Questo è un certificato digitale crittografico che crittografa il tuo server web e garantisce che i dati scambiati con il server web siano crittografati.

Il certificato Let's Encrypt SSL è un certificato digitale fornito da Let's Encrypt CA (Autorità di certificazione) per proteggere un server web. È un certificato TLS/SSL gratuito valido per soli 90 giorni, dopodiché è necessario il rinnovo prima della scadenza. È utile per le startup o gli individui che non possono permettersi un certificato SSL premium per i propri blog o siti Web.

In questa guida dimostreremo come installare il certificato Let's Encrypt SSL/TLS per NGINX su Rocky Linux 8

Di cosa hai bisogno

Innanzitutto, assicurati di avere un'istanza del server Rocky Linux 8 sul cloud o in locale e già configurata con un utente sudo.

Quindi, assicurati di avere un nome di dominio completo (FQDN) che punta all'IP pubblico del tuo server. Per ottenere ciò, vai al tuo registrar di domini e, nelle impostazioni DNS, configura il record A in modo che punti il ​​nome di dominio all'IP pubblico del server. Di seguito è riportato uno snippet del mio record A.

Per questa guida utilizziamo il nome di dominio linuxtechgeek.info che punta all'indirizzo IP del server 34.134.239.201.

Detto questo, iniziamo!

Passaggio 1) Installa Nginx Web Server

Iniziamo con l'installazione del server web Nginx su Rocky 8. Ma prima aggiorniamo il pacchetto di sistema e aggiorniamo i repository.

$ sudo dnf update

L'aggiornamento può richiedere del tempo, quindi sii paziente fino al completamento.

Una volta completato l'aggiornamento, riavviare il sistema una volta e quindi installare nginx webserver come segue:

$ sudo dnf install nginx

Per impostazione predefinita, nginx non si avvia automaticamente. Quindi, fai il possibile e avvia il servizio nginx.

$ sudo systemctl start nginx

Quindi, abilita l'avvio del server web all'avvio o al riavvio.

$ sudo systemctl enable nginx

Il server web dovrebbe ora essere in esecuzione come previsto e in ascolto sulla porta 80. Puoi confermarlo eseguendo il comando

$ sudo systemctl status nginx

Puoi anche verificarlo da un browser web. Ma prima, consenti il ​​traffico HTTP (sia HTTP che HTTPS) sul firewall eseguendo i comandi mostrati

$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent

Quindi ricarica il firewall per apportare le modifiche.

$ sudo firewall-cmd --reload

Quindi sfoglia l'indirizzo IP o il nome di dominio del tuo server

http://nome_dominio

Passaggio 2)  Crea una radice del documento per il dominio

Abbiamo finito di installare il server web. Il passaggio successivo consiste nel creare una directory che contenga i file del dominio. Creeremo la directory del dominio nel percorso linuxtechgeek.info come mostrato usando il comando mkdir

$ sudo mkdir -p /var/www/linuxtechgeek.info/html

La radice del documento del dominio è dove troverai i file del sito Web inclusi HTML, CSS, JavaScript e immagini. A scopo dimostrativo, creeremo un semplice file index.html.

$ sudo vi /var/www/linuxtechgeek.info/html/index.html

Successivamente, incolla il seguente codice HTML di esempio e salva le modifiche.

<!DOCTYPE html>
<html>
    <head>
        <title>Welcome to linuxtechgeek.info</title>
    </head>
    <body>
  <h1>Hey Guys! Our Nginx server block is working.</h1>
    </body>
</html>

Quindi, usa il comando chown per impostare la proprietà della directory del dominio come segue per evitare problemi di autorizzazioni.

$ sudo chown -R nginx /var/www/linuxtechgeek.info/

Quindi, imposta le autorizzazioni in modo tale che il gruppo e gli utenti globali abbiano i diritti di lettura ed esecuzione sui file del dominio.

$ sudo chmod -R 755 /var/www/linuxtechgeek.info/

Abbiamo finito di configurare la root del documento per il dominio e di impostare la proprietà e le autorizzazioni corrette. Procediamo e configuriamo il file di blocco del server.

Passaggio 3)  Crea un blocco server Nginx

Un blocco server Nginx è l'equivalente di un host virtuale apache. Il blocco del server è il punto in cui definisci le impostazioni del sito e dici al server web nginx dove individuare i file del dominio.

Il file di configurazione del blocco del server viene creato nella directory /etc/nginx/conf.d. Creeremo il nostro nella stessa directory come segue.

$ sudo vi /etc/nginx/conf.d/linuxtechgeek.info.conf

Copia e incolla le seguenti righe. Assicurati di sostituire il nome di dominio linuxtechgeek.info con il tuo dominio.

server {
    listen 80;
    server_name linuxtechgeek.info www.linuxtechgeek.info;
    root /var/www/linuxtechgeek.info/html;
    index index.php index.html index.htm;
    access_log /var/log/nginx/linuxtechgeek.info.access.log;
    error_log /var/log/nginx/linuxtechgeek.info.error.log;
}

Salva le modifiche ed esci dal file di blocco del server.

Quindi conferma che tutte le configurazioni di Nginx sono a posto. Se tutto va bene, dovresti visualizzare l'output.

$ sudo nginx -t

Affinché Nginx sia a conoscenza di tutte le modifiche, inclusa la radice del documento del dominio e il file di blocco del server, riavvia il server web.

$ sudo systemctl restart nginx

Quindi conferma lo stato di esecuzione di Nginx.

$ sudo systemctl status nginx

Quindi, imposta SELinux in modalità permissiva usando il comando:

$ sudo setenforce permissive

Per confermare che è impostato in modalità permissiva, esegui il comando:

$ sudo getenforce

Esegui sotto il comando sed per impostare permanentemente la modalità selinux come permissiva.

$ sudo sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/sysconfig/selinux

Per confermare che il file di blocco del server è stato configurato correttamente, ancora una volta, sfoglia il tuo nome di dominio.

http://nome_dominio

Dovresti ottenere una conferma positiva come mostrato di seguito.

Passaggio 4) Installa Certbot

L'unico passaggio rimasto è installare Let's Encrypt e proteggere il server web Nginx. Tuttavia, per ottenere ciò, è necessario installare certbot. Scritto in Python e sviluppato dalla Electronic Frontier Foundation, Certbot è un client completo per Let's Encrypt CA. Viene eseguito sul server web e ti consente di impostare automaticamente un certificato SSL per il tuo server web con un unico comando.

Innanzitutto, installa il repository EPEL che fornisce pacchetti aggiuntivi e di alta qualità per le distribuzioni basate su RHEL.

$ sudo dnf install -y epel-release

Una volta installato, installa certbot e il modulo certbot per Nginx.

$ sudo dnf install certbot python3-certbot-nginx

Questo installa certbot, modulo certbot per host Nginx di altri pacchetti e dipendenze.

Passaggio 4) Installa il certificato Let's Encrypt SSL/TLS

Infine, esegui il client certbot per installare il certificato SSL

$ sudo certbot --nginx

Questo ti guida attraverso una serie di prompt. Innanzitutto, fornisci l'indirizzo e-mail che verrà utilizzato da EFF per inviarti aggiornamenti di rinnovo e sicurezza. Quindi accetta i Termini di servizio premendo "Y". Se lo desideri, puoi premere "Y" per consentire a EFF di inviarti aggiornamenti regolari sui loro sforzi per proteggere il Web, le notizie e le campagne. Infine, seleziona i nomi di dominio da crittografare. Nel nostro caso, abbiamo premuto il pulsante 'INVIO' per selezionare tutti i nomi di dominio.

Certbot recupererà il certificato SSL/TLS e lo distribuirà per i nomi di dominio specificati. Ciò abilita il protocollo HTTPS per il tuo dominio, in effetti crittografando il traffico scambiato con il server web.

Per confermare che HTTPS è stato abilitato, torna al tuo browser e ricaricalo. Questa volta noterai l'icona di un lucchetto sulla barra degli URL, un'indicazione che il sito è crittografato.

Fare clic sull'icona e quindi selezionare "Certificato".

Vengono visualizzati i dettagli del certificato come forniti

Inoltre, puoi testare lo stato del tuo server web su SSL Labs, un sito che esegue un'analisi approfondita di un server web su Internet. Dovresti ottenere una valutazione A come mostrato.

Fase 5) Gestione del rinnovo del certificato SSL

Il certificato Let's Encrypt è valido per 90 giorni, tuttavia Let's Encrypt consiglia di rinnovare il certificato ogni 60 giorni. Le notifiche e-mail ti verranno inviate negli ultimi 20 giorni prima della scadenza con la frequenza che sale negli ultimi 10 giorni.

Puoi rinnovare manualmente il certificato come segue.

$ sudo certbot renew

Per fortuna, puoi automatizzare il rinnovo aggiungendo un nuovo lavoro cron. Quindi, apri il file crontab.

$ crontab -e

E aggiungi la riga mostrata. Salva le modifiche ed esci.

0 0 * * * /usr/bin/certbot renew > /dev/null 2>&1

È tutto. Grazie per essere arrivato fin qui. Abbiamo dimostrato come installare il certificato Let's Encrypt SSL per Nginx su Rocky Linux 8.

Leggi anche :Come configurare NGINX ad alta disponibilità con KeepAlived in Linux


Rocky Linux
  1. Come installare MariaDB 10.6 su Rocky Linux 8

  2. Come installare Docker su Rocky Linux 8

  3. Come installare Cockpit su Rocky Linux 8

  4. Come installare Varnish 7 per Nginx su Rocky Linux 8

  5. Come installare MariaDB su Rocky Linux 8

Come installare Nginx con Let's Encrypt SSL su Ubuntu 20.04 LTS

Come installare Nginx su Rocky Linux 8

Come installare PostgreSQL su Rocky Linux 8

Come installare Cactus su Rocky Linux 8

Come installare Joomla su Rocky Linux 8

Come installare Fail2ban su Rocky Linux 8