introduzione
In questo tutorial imparerai la procedura per l'installazione del certificato TLS / SSL sul server web Apache. Al termine, tutto il traffico tra server e client verrà crittografato. Questa è una pratica standard di protezione dei siti di e-commerce e di altri servizi finanziari online. Let's Encrypt è il pioniere nell'implementazione di SSL gratuito e verrà utilizzato come provider di certificati in questo caso.
Prerequisiti
Prima di iniziare questa guida, avrai bisogno di quanto segue:
- Accesso root SSH a un VPS CentOS 7
- Server web Apache con dominio e vhost configurati correttamente
- Un utente sudo non root
Installazione di moduli dipendenti
Per installare certbot dovrai installare il repository EPEL in quanto non è disponibile per impostazione predefinita, mod_sslinoltre è richiesto per il riconoscimento della crittografia da parte di Apache:
sudo yum install -y epel-release mod_ssl
Download del client Let's Encrypt
Successivamente, installerai il client certbot dal repository EPEL:
sudo yum install python-certbot-apache
Certbot gestirà abbastanza facilmente la gestione dei certificati SSL. Genererà un nuovo certificato per il dominio fornito come parametro.
In questo caso, example.comverrà utilizzato come dominio a cui verrà rilasciato il certificato:
sudo certbot --apache -d example.com
Se si desidera generare SSL per più domini o sottodomini, utilizzare il comando seguente:
sudo certbot --apache -d example.com -d www.example.com
Nota: Il primo dominio dovrebbe essere il dominio di base, in questo esempio: example.com.
Quando installi il certificato, riceverai una guida dettagliata che ti permetterà di personalizzare i dettagli del certificato. Sarai in grado di scegliere tra forzare HTTPSo uscire HTTPcome protocollo predefinito. Sarà richiesto anche un indirizzo e-mail, per motivi di sicurezza.
Al termine dell'installazione, riceverai un messaggio simile:
IMPORTANT NOTES:
- If you lose your account credentials, you can recover through
emails sent to user@example.com.
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert
will expire on 2019-04-21. To obtain a new version of the
certificate in the future, simply run Let's Encrypt again.
- Your account credentials have been saved in your Let's Encrypt
configuration directory at / etc / letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also have certificates and private keys obtained by Let's
Encrypt so regular backups of this folder is ideal.
- If you like Let's Encrypt, please consider supporting our work by:
Configurazione del rinnovo automatico del certificato
Crittografiamo i certificati sono validi per 90 giorni. Si consiglia di rinnovarlo entro 60 giorni, al fine di evitare problemi. Per raggiungere questo obiettivo, certbot ci assisterà con il tuo comando di rinnovo. Verificherà che il certificato è inferiore a 30 giorni dalla scadenza:
sudo certbot renew
Se il certificato installato è recente, certbot verificherà solo la data di scadenza:
Processing /etc/letsencrypt/renewal/example.com.conf
The following certs are not due for renewal yet:
/etc/letsencrypt/live/example.com/fullchain.pem (skipped)
No renewals were attempted.
Per automatizzare questo processo di rinnovo, puoi impostare un cronjob. Innanzitutto, apri il crontab:
sudo crontab -e
Questo lavoro può essere programmato in modo sicuro per essere eseguito ogni lunedì a mezzanotte:
0 0 * * 1 / usr / bin / certbot renew >> /var/log/sslrenew.log
L'output dello script verrà reindirizzato al /var/log/sslrenew.logfile.
Conclusione
Hai appena protetto il tuo server web Apache implementando un certificato SSL gratuito. Da ora in poi tutto il traffico tra server e client è crittografato.