Introduzione

Let's Encrypt è una certification authority (CA) che automatizza gratuitamente la creazione, la validazione, il rilascio ed il rinnovo di certificati X.509 per il protocollo TLS / SSL, abilitando l'HTTPS crittografato sui server Web.

In questo tutorial, si utilizzerà Certbot per ottenere un certificato SSL gratuito per Apache su Fedora 31 e per impostare il certificato per il rinnovo automatico.

Certbot è un client automatico di facile utilizzo che recupera e distribuisce i certificati SSL / TLS per il server web.

Se il vostro intento è installare Let's Encrypt su di un server Fedora in remoto continuate a leggere, altrimenti se volete installare Let's Encrypt sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno della password per l'autenticazione.

Per connettersi al server come utente root digitare questo comando:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare il primo parametro:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

Siete ora connessi al vostro server, siete pronti per iniziare l'installazione di Certbot.

Installare Certbot

Certbot è presente nei repository ufficiali di Fedora, è possibile quindi installarlo con il seguente comando da terminale:

sudo dnf install certbot-apache

Configurare il file hosts

Attenzione: se il file hosts non è stato configurato, è possibile, con il seguente comando, inserire il proprio dominio per associarlo al server:

echo 127.0.0.1 www.esempio.it esempio.it >> /etc/hosts

Configuare VirtualHost

Attenzione: se non è stato già fatto, è necessario configurare un VirtualHost per ottenere i certificati SSL, utilizzando Certbot.
Quindi aprire il seguente file:

sudo vi /etc/httpd/conf/httpd.conf

Cercare la seguente riga:

#ServerName www.example.com:80

Decommentarla e modificarla in questo modo:

ServerName 127.0.0.1:80

Aggiungere le seguenti righe alla fine del file modificando esempio.it con il proprio nome dominio:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName esempio.it
    ServerAlias www.esempio.it
    DocumentRoot /var/www/html
</VirtualHost>

Ottenere un certificato SSL ed impostarlo automaticamente

Il primo passo per utilizzare Let's Encrypt per ottenere un certificato SSL è installare il software Certbot sul tuo server.

sudo certbot --apache

Potresti ricevere il seguente messaggio di output:

Error while running apachectl configtest.

AH00526: Syntax error on line 101 of /etc/httpd/conf.d/ssl.conf:
SSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty

Avvisa che il file di configurazione SSL di Apache non esiste. Proseguire con le configurazioni richieste nella console, il file verrà creato automaticamente.

Certbot è ora pronto per l'uso.

Ottenere un certificato SSL ed impostarlo manualmente

Potresti voler ottenere il certificato e successivamente configurare manualmente Apache con il seguente comando:

sudo certbot --apache certonly

Certbot è ora pronto per l'uso.

Wildcard

Se si desidera ottenere un certificato Wildcard utilizzando Let's Encrypt, sarà necessario utilizzare uno dei plug-in DNS di Certbot. Per fare ciò, assicurarsi che il plugin del proprio provider DNS sia installato seguendo le istruzioni sopra riportate ed eseguire il seguente comando con il vostro nome dominio:

sudo certbot -a dns-plugin -i apache -d "*.esempio.it" -d esempio.it --server https://acme-v02.api.letsencrypt.org/directory

Per saperne di più su come usare Certbot, leggi la documentazione ufficiale di Certbot.

Rinnovo automatico

I pacchetti Certbot sono dotati di un cron job che rinnoverà automaticamente i tuoi certificati prima che scadano. Poiché i certificati Let's Encrypt durano per 90 giorni, è altamente consigliato sfruttare questa funzionalità. È possibile verificare il rinnovo automatico dei certificati eseguendo questo comando:

sudo certbot renew --dry-run

Se risulta funzionare correttamente, puoi impostare il rinnovo automatico aggiungendo un processo cron o un timer systemd che esegua questo comando:

certbot renew

L'installazione di Let's Encrypt per Apache su Fedora 31 utilizzando Certbot è terminata.