Introduzione
Nel caso non te ne fossi già accorto, la crittografia è importante. Per il Web, ciò significa utilizzare i certificati SSL per proteggere il traffico Web. Di recente, Mozilla e Google sono arrivati al punto di contrassegnare i siti senza certificati SSL come non sicuri in Firefox e Chrome.
Per portare il Web al passo con la crittografia, la Linux Foundation insieme alla Electronic Frontier Foundation e molti altri hanno creato LetsEncrypt. LetsEncrypt è un progetto progettato per consentire agli utenti di accedere a certificati SSL gratuiti per i loro siti web. Ad oggi LetsEncrypt ha emesso milioni di certificati ed è un successo clamoroso.
Usare LetsEncrypt è facile su Debian, specialmente quando si usa l'utilità Certbot di EFF.
Sistema operativo
- OS :Debian Linux
- Versione :9 (Allunga)
Installazione per Apache
Certbot ha un programma di installazione specializzato per il server Apache. Debian ha questo installer disponibile nei suoi repository.
# apt install python-certbot-apache
Il pacchetto fornisce il certbot
comando. Il plugin Apache si interfaccia con il server Apache per scoprire informazioni sulle tue configurazioni e sui domini per i quali sta generando i certificati. Di conseguenza, la generazione dei certificati richiede solo un breve comando.
# certbot --apache
Certbot genererà i tuoi certificati e configurerà Apache per utilizzarli.
Installazione per Nginx
Nginx richiede un po' più di configurazione manuale. Poi di nuovo, se usi Nginx, probabilmente sei abituato alle configurazioni manuali. In ogni caso, Certbot è ancora disponibile per il download tramite i repository di Debian.
# apt install certbot
Il plug-in Certbot è ancora in versione alfa, quindi non è consigliabile utilizzarlo. Certbot ha un'altra utility chiamata "webroot" che semplifica l'installazione e la manutenzione dei certificati. Per ottenere un certificato, esegui il comando seguente, specificando il tuo web root director e tutti i domini che desideri siano coperti dal certificato.
# certbot certonly --webroot -w /var/www/site1 -d site1.com -d www.site1.com -w /var/www/site2 -d site2.com -d www.site2.com
Puoi utilizzare un certificato per più domini con un comando.
Nginx non riconoscerà i certificati finché non li aggiungerai alla tua configurazione. Tutti i certificati SSL devono essere elencati all'interno del server
blocco per il rispettivo sito web. Devi anche specificare all'interno di quel blocco che il server deve essere in ascolto sulla porta 443
e usa SSL.
server { listen 443 default ssl; # Your # Other ssl_certificate /path/to/cert/fullchain.pem ssl_certificate_key /path/to/cert/privkey.pem # Config # Lines }
Salva la configurazione e riavvia Nginx per rendere effettive le modifiche.
# systemctl restart nginx
Rinnovo automatico con Cron
Che tu stia utilizzando Apache o Nginx, dovrai rinnovare i tuoi certificati. Ricordarsi di farlo può essere un dolore e sicuramente non vuoi che cadano. Il modo migliore per gestire il rinnovo dei certificati è creare un processo cron che venga eseguito due volte al giorno. Si consigliano rinnovi due volte al giorno perché proteggono dalla scadenza dei certificati a causa della revoca, che può verificarsi di tanto in tanto. Per essere chiari, però, in realtà non si rinnovano ogni volta. L'utilità controlla se i certificati sono scaduti o entro trenta giorni. Li rinnoverà solo se soddisfano i criteri.
Innanzitutto, crea un semplice script che esegua l'utilità di rinnovo di Certbot. Probabilmente è una buona idea inserirlo nella home directory del tuo utente o in una directory degli script in modo che non venga servito.
#! /bin/bash certbot renew -q
Non dimenticare di rendere eseguibile anche lo script.
$ chmod +x renew-certs.sh
Ora puoi aggiungere lo script come cron job. Apri il tuo crontab e aggiungi lo script.
# crontab -e
* 3,15 * * * /home/user/renew-certs.sh
Una volta terminato, lo script dovrebbe essere eseguito ogni giorno alle 3:00 e alle 15:00. dall'orologio del server.
Pensieri conclusivi
La crittografia del tuo server web protegge sia i tuoi ospiti che te stesso. La crittografia continuerà anche a svolgere un ruolo in cui i siti vengono visualizzati nei browser e non è molto difficile presumere che avrà anche un ruolo nella SEO. In ogni caso, crittografare il tuo server web è una buona idea e LetsEncrypt è il modo più semplice per farlo.