Ricerca nel sito web

Proteggi Apache con Lets Encrypt Certificato SSL su CentOS 8


La protezione del tuo server web è sempre uno dei fattori chiave che dovresti considerare prima di pubblicare il tuo sito web. Un certificato di sicurezza è fondamentale per proteggere il traffico inviato dai browser Web ai server Web e, così facendo, ispirerà gli utenti a scambiare dati con il tuo sito Web nella piena consapevolezza che il traffico inviato è protetto.

Nella maggior parte dei casi, i certificati di sicurezza vengono pagati e rinnovati ogni anno. Il certificato Let's Encrypt è un'autorità di certificazione gratuita, aperta e automatizzata che puoi utilizzare per crittografare il tuo sito. Il certificato scade ogni 90 giorni e si rinnova automaticamente senza alcun costo.

Lettura consigliata: Come proteggere Nginx con Let's Encrypt su CentOS 8

In questo articolo ti mostreremo come installare il certificato Let's Encrypt con Certbot per il server web Apache e successivamente configurare il certificato per rinnovare automaticamente su CentOS 8.

Prerequisiti

Prima di iniziare, assicurati di avere a disposizione quanto segue:

1. Un'istanza del server CentOS 8 con il server Web Apache HTTP installato e in esecuzione. Puoi confermare che il tuo server web Apache è attivo e funzionante.

sudo dnf install httpd
sudo systemctl status httpd

2. Un nome di dominio completo (FQDN) che punta all'indirizzo IP pubblico del tuo server web sul tuo provider di hosting web DNS. Per questa guida, utilizzeremo linuxtechwhiz.info che punta all'IP del server 34.67.63.136.

Passaggio 1. Installa Certbot in CentOS 8

Certbot è un client che automatizza l'installazione del certificato di sicurezza. Recupera il certificato dall'autorità di crittografia e lo distribuisce sul tuo server web senza troppi problemi.

Certbot è assolutamente gratuito e ti consentirà di installare il certificato in modo interattivo generando istruzioni basate sulla configurazione del tuo server web.

Prima di scaricare il certbot, installa innanzitutto i pacchetti necessari per la configurazione di una connessione crittografata.

Inizieremo installando il repository EPEL che fornisce pacchetti aggiuntivi di alta qualità per i sistemi basati su RHEL:

sudo dnf install epel-release

Successivamente, installa i pacchetti mod_ssl e openssl.

sudo dnf install mod_ssl openssl

Una volta installate tutte le dipendenze, installa Certbot e il modulo Apache per Certbot.

sudo dnf install certbot python3-certbot-apache

Il comando installa Certbot, il modulo Apache per Certbot e altre dipendenze.

Passaggio 2: crea un host virtuale Apache

Il prossimo passo sarà creare un file host virtuale per il nostro dominio – linuxtechwhiz.info. Inizia creando innanzitutto la radice del documento in cui posizionerai i file HTML.

sudo mkdir /var/www/linuxtechwhiz.info.conf

Crea un file index.html di prova come mostrato.

sudo echo “<h1>Welcome to Apache HTTP server</h1>” > /var/www/linuxtechwhiz.info/index.html

Successivamente, crea un file host virtuale come mostrato.

sudo vim /etc/httpd/conf.d/linuxtechwhiz.info

Aggiungi la configurazione di seguito.

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
</VirtualHost>

Salva ed esci.

Assegnare le autorizzazioni alla radice del documento come mostrato.

sudo chown -R apache:apache /var/www/linuxtechwhiz.info

Per rendere effettive le modifiche, riavviare il servizio Apache.

sudo systemctl restart httpd

Passaggio 3: installa Let's Encrypt SSL Certificate su CentOS 8

Ora esegui certbot come mostrato per iniziare l'installazione del certificato Let's Encrypt.

sudo certbot --apache -d domain.com

Nel nostro caso, questo sarà:

sudo certbot --apache -d linuxtechwhiz.info

Il comando ti guiderà attraverso una serie di istruzioni per consentirti di configurare Lets Encrypt per il tuo dominio. Assicurati di fornire il tuo indirizzo email, accetta i Termini di servizio e specifica i nomi di dominio che desideri utilizzare con il protocollo HTTPS che è la versione crittografata di HTTP.

Se tutto è andato bene, alla fine dovresti ricevere un messaggio di congratulazioni che ti informa che il tuo sito è stato protetto utilizzando il certificato Let's Encrypt. Verrà visualizzata anche la validità del tuo certificato, che solitamente avviene dopo 90 giorni dall'implementazione.

Ora torna al file host virtuale e aggiungi le seguenti righe di configurazione.

SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem

Salva ed esci.

La configurazione finale dell'host virtuale Apache sarà simile a questa:

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined

 SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
</VirtualHost>

Ancora una volta, riavvia Apache.

sudo systemctl restart httpd

Passaggio 4: verifica del certificato SSL Let's Encrypt

Per verificare che tutto funzioni, avvia il browser e visita l'indirizzo IP del tuo server. Ora dovresti vedere il simbolo di un lucchetto all'inizio dell'URL.

Per ottenere maggiori dettagli, fai clic sul simbolo del lucchetto e poi sull'opzione "Certificato" nel menu a discesa visualizzato.

I dettagli del certificato verranno visualizzati nella finestra pop-up successiva.

Inoltre, puoi testare il tuo server su https://www.ssllabs.com/ssltest/ e il tuo sito dovrebbe ottenere un voto 'A' come mostrato.

Passaggio 5: Rinnovo automatico Crittografiamo il certificato SSL

Let's Encrypt è valido solo per 90 giorni. Di solito, il processo di rinnovo viene eseguito dal pacchetto certbot che aggiunge uno script di rinnovo alla directory /etc/cron.d. Lo script viene eseguito due volte al giorno e rinnova automaticamente qualsiasi certificato entro 30 giorni dalla scadenza.

Per testare il processo di rinnovo automatico, esegui un test di prova con certbot.

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

Se non sono stati riscontrati errori, significa che sei a posto.

Questo ci porta alla fine di questa guida. In questa guida, abbiamo dimostrato come utilizzare certbot per installare e configurare il certificato Let's Encrypt sul server web Apache in esecuzione su un sistema CentOS 8.