GNU/Linux >> Linux Esercitazione >  >> Linux

Come proteggere il server Web Apache con Let's Encrypt su RHEL 8

In un mondo online costantemente inondato di minacce alla sicurezza, la sicurezza del tuo server web dovrebbe essere al primo posto. Uno dei modi per proteggere il tuo server web è implementare il protocollo HTTPS sul tuo sito utilizzando un certificato SSL/TLS. Un certificato SSL/TLS non solo protegge il tuo sito crittografando le informazioni scambiate tra il server web e i browser degli utenti, ma aiuta anche nel posizionamento di Google.

In questa guida imparerai come proteggere il server Web Apache (http) con Let's Encrypt SSL/TLS su RHEL 8.

Prerequisiti

Ecco cosa ti serve prima di procedere:

  • Un'istanza del server RHEL 8 con un utente sudo configurato.
  • Un nome di dominio completo (FQDN) che punta all'indirizzo IP pubblico del tuo server. In questa guida utilizzeremo il nome di dominio linuxtechgeek.info.

Passaggio 1) Installa Apache su RHEL 8

Il primo passo è installare il server web Apache. Poiché Apache esiste già nel repository AppStream di Red Hat, puoi installarlo utilizzando il gestore di pacchetti DNF come segue.

$ sudo dnf install -y httpd

Una volta installato, avvia il server Web Apache e abilitalo all'avvio all'avvio.

$ sudo systemctl start httpd
$ sudo systemctl enable httpd

Per verificare che Apache sia in esecuzione, eseguire il comando:

$ sudo systemctl status httpd

Nota:nel caso in cui il firewall sia in esecuzione, consenti le seguenti porte Apache nel firewall, esegui

$ sudo firewall-cmd --add-port=80/tcp --permanent
$ sudo firewall-cmd --add-port=443/tcp –permanent
$ sudo firewall-cmd --realod

Ora puoi accedere al tuo browser web e sfogliare il tuo dominio nella barra degli URL.

Passaggio 2) Installa Certbot

Certbot è un client opensource facile da usare gestito da EFF (Electronic Frontier Foundation). Recupera il certificato TLS da Lets Encrypt e lo distribuisce al server web. In questo modo, elimina il fastidio e il dolore dell'implementazione del protocollo HTTPS utilizzando il certificato TLS.

Per installare Certbot e i pacchetti associati, abilita prima EPEL (Extra Packages for Enterprise Linux).

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

Quindi, installa certbot e il pacchetto mod_ssl come segue.

$ sudo dnf install certbot python3-certbot-apache mod_ssl

Fase 3) Crea un file host virtuale Apache

Gli host virtuali consentono di ospitare più domini su un unico server web.

Il primo passo è creare una directory all'interno della radice del documento in cui andranno tutti i file del sito Web.

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

Imposta la proprietà della directory sull'utente Apache.

$ sudo chown -R apache:apache /var/www/linuxtechgeek.info/html

Assicurati di impostare i permessi della directory come mostrato.

$ sudo chmod -R 755 /var/www

Con la directory del dominio in atto con tutte le proprietà e i permessi impostati, creeremo un file host virtuale nella directory /etc/httpd/conf.d/.

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

Incolla le seguenti righe e fai attenzione a usare il tuo nome di dominio.

<virtualhost *:80>
ServerName linuxtechgeek.info
ServerAlias www.linuxtechgeek.info
DocumentRoot /var/www/linuxtechgeek.info/html
ErrorLog /var/log/httpd/linuxtechgeek.info-error.log
CustomLog /var/log/httpd/linuxtechgeek.info-access.log combined
</virtualhost>

Salva ed esci dal file virtualhost.

Per verificare se l'host virtuale funziona, creeremo un file HTML di esempio nella directory del sito Web.

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

Incolla il seguente contenuto di esempio. Sentiti libero di modificarlo secondo le tue preferenze.

<!DOCTYPE html>
<html>
     <body>
         <h1> Welcome to Linuxtechi virtualhost </h1>
      </body>
</html>

Salva ed esci dal file HTML. Per salvare tutte le modifiche apportate, riavvia il server web Apache.

$ sudo systemctl restart httpd

Ora, esplora ancora una volta il tuo dominio e questa volta, invece della pagina di benvenuto di Apache predefinita, dovresti vedere la pagina HTML personalizzata che hai appena configurato. Questa è la prova che il file dell'host virtuale funziona.

Passaggio 4) Proteggi Apache con Let's Encrypt Certificate

L'ultimo passaggio consiste nel recuperare e distribuire il certificato Let's Encrypt. Per fare ciò, esegui semplicemente il comando:

$ sudo certbot --apache

Quando il comando viene eseguito, certbot ti guiderà attraverso una serie di prompt. Ti verrà richiesto il tuo indirizzo e-mail e ti verrà richiesto di accettare i Termini e condizioni. Ti verrà anche chiesto se desideri ricevere e-mail periodiche sulle notizie EFF e sulle campagne sulla libertà digitale.

Quando ti vengono richiesti i nomi per i quali attivare HTTPS, premi semplicemente INVIO per applicare il certificato a tutti i domini forniti. 

Certbot procederà a recuperare il certificato TLS da Let's Encrypt e lo implementerà sul tuo server web. Certbot stamperà quindi il percorso in cui sono stati salvati il ​​certificato e la chiave, nonché il percorso di distribuzione del certificato per i tuoi domini.

Per verificare che Let's encrypt sia stato distribuito correttamente, aggiorna il browser. Questa volta noterai un'icona a forma di lucchetto all'inizio della barra degli URL che indica che il sito è stato crittografato correttamente.

Puoi fare clic sull'icona del lucchetto per ulteriori dettagli

Inoltre, puoi eseguire un test SSL su SSL Labs per verificare digitalmente il tuo certificato. Se tutto è andato bene, dovresti prendere un voto A.

Passaggio 5) Crittografiamo il rinnovo del certificato

Il certificato Let's Encrypt è valido per soli 90 giorni. Alcune settimane prima della scadenza, di solito riceverai una notifica da EFF sull'imminente scadenza del certificato e sulla necessità di rinnovare il tuo certificato.

Puoi rinnovare manualmente il certificato eseguendo il comando:

$ sudo certbot renew

Per simulare il rinnovo del certificato, esegui il comando:

$ sudo certbot renew --dry-run

Questo simula semplicemente il rinnovo effettivo del certificato e non esegue alcuna azione.

Per automatizzare il rinnovo del certificato, apri il file crontab

$ crontab -e

Specifica il processo cron di seguito che verrà eseguito ogni mezzanotte.

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

Conclusione

Ci auguriamo che ora tu possa distribuire senza problemi il certificato Let's Encrypt su RHEL per proteggere il server Web Apache.

Leggi anche :Come rafforzare e proteggere il server Web NGINX in Linux


Linux
  1. Come configurare un server web Apache

  2. Come configurare più siti Web con il server Web Apache

  3. Come proteggere Apache con Lets Encrypt su Ubuntu 18.04

  4. Come proteggere il tuo server Ubuntu con CSF Firewall

  5. Come installare Let's Encrypt SSL con Apache su Debian 11

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

Come proteggere Apache con Let's Encrypt SSL Certificate su CentOS 8

Come confrontare le prestazioni del server Web con Apache Bench

Come proteggere Apache con Let's Encrypt su CentOS 8

Come proteggere Nginx con Let's Encrypt su Ubuntu 20.04

Come proteggere Apache con Let's Encrypt su Ubuntu 20.04