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.