Cheap Bike Vs. Super Bike | What's The Difference?
Sommario:
- Prerequisiti
- Installa Certbot
- Genera gruppo Strong Dh (Diffie-Hellman)
- Ottenere un certificato SSL Let's Encrypt
- Rinnovo automatico Let's Encrypt SSL certificate
- Conclusione
Let's Encrypt è un'autorità di certificazione libera, automatizzata e aperta sviluppata da Internet Security Research Group (ISRG). I certificati emessi da Let's Encrypt sono validi per 90 giorni dalla data di emissione e sono considerati affidabili da tutti i principali browser oggi.
In questo tutorial, tratteremo i passaggi necessari per installare un certificato SSL Let's Encrypt gratuito su un server CentOS 7 che esegue Apache come server Web. Useremo l'utilità certbot per ottenere e rinnovare i certificati Let's Encrypt.
Prerequisiti
Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con questo tutorial:
- Avere un nome di dominio che punta all'IP del server pubblico. Useremo
example.com
Apache è installato e in esecuzione sul tuo server. Avere host virtuale Apache per il tuo dominio. Le porte 80 e 443 sono aperte nel tuo firewall.
Installare i seguenti pacchetti richiesti per un server Web crittografato SSL:
Installa Certbot
Certbot è uno strumento che semplifica il processo per ottenere certificati SSL da Let's Encrypt e abilitare automaticamente HTTPS sul tuo server.
Il pacchetto certbot è installabile da EPEL. Se il repository EPEL non è installato sul sistema, è possibile installarlo utilizzando il comando seguente:
sudo yum install epel-release
Una volta abilitato il repository EPEL, installare il pacchetto certbot digitando:
Genera gruppo Strong Dh (Diffie-Hellman)
Lo scambio di chiavi Diffie-Hellman (DH) è un metodo di scambio sicuro di chiavi crittografiche su un canale di comunicazione non protetto. Generare un nuovo set di parametri DH a 2048 bit per rafforzare la sicurezza:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
È possibile modificare la dimensione fino a 4096 bit, ma in tal caso, la generazione potrebbe richiedere più di 30 minuti a seconda dell'entropia del sistema.
Ottenere un certificato SSL Let's Encrypt
Per ottenere un certificato SSL per il nostro dominio, utilizzeremo il plug-in Webroot che funziona creando un file temporaneo per convalidare il dominio richiesto nella
${webroot-path}/.well-known/acme-challenge
. Il server Let's Encrypt invia richieste HTTP al file temporaneo per convalidare la risoluzione del dominio richiesto sul server su cui viene eseguito certbot.
Per rendere più semplice
.well-known/acme-challenge
tutte le richieste HTTP per
.well-known/acme-challenge
su una singola directory,
/var/lib/letsencrypt
.
Esegui i seguenti comandi per creare la directory e renderla scrivibile per il server Apache:
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
Per evitare la duplicazione del codice, creare i seguenti due frammenti di configurazione:
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff # Requires Apache >= 2.4 SSLCompression off SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" # Requires Apache >= 2.4.11 SSLSessionTickets Off
Lo snippet sopra sta usando i cippatori raccomandati da Cipherli.st, abilita la pinzatura OCSP, HTTP Strict Transport Security (HSTS) e applica poche intestazioni HTTP incentrate sulla sicurezza.
Ricarica la configurazione di Apache per rendere effettive le modifiche:
sudo systemctl reload
Ora, possiamo eseguire lo strumento Certbot con il plugin webroot e ottenere i file del certificato SSL digitando:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Se il certificato SSL viene ottenuto correttamente, certbot stamperà il seguente messaggio:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2018-12-07. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
CentOS 7 viene fornito con Apache versione 2.4.6, che non include la direttiva
SSLOpenSSLConfCmd
. Questa direttiva è disponibile solo su Apache 2.4.8 in seguito e viene utilizzata per la configurazione di parametri OpenSSL come lo scambio di chiavi Diffie-Hellman (DH).
Dovremo creare un nuovo file combinato usando il certificato SSL Let's Encrypt e il file DH generato. Per fare ciò, digitare:
cat /etc/letsencrypt/live/example.com/cert.pem /etc/ssl/certs/dhparam.pem >/etc/letsencrypt/live/example.com/cert.dh.pem
Ora che tutto è impostato, modifica la configurazione dell'host virtuale del tuo dominio come segue:
/etc/httpd/conf.d/example.com.conf
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration
Con la configurazione sopra, stiamo forzando HTTPS e reindirizzando dalla versione www alla versione non www. Sentiti libero di adattare la configurazione in base alle tue esigenze.
Riavvia il servizio Apache per rendere effettive le modifiche:
sudo systemctl restart
Ora puoi aprire il tuo sito Web usando
https://
e noterai un'icona a forma di lucchetto verde.
Rinnovo automatico Let's Encrypt SSL certificate
I certificati Let's Encrypt sono validi per 90 giorni. Per rinnovare automaticamente i certificati prima che scadano, creeremo un cronjob che verrà eseguito due volte al giorno e rinnoveremo automaticamente qualsiasi certificato 30 giorni prima della sua scadenza.
Esegui il comando
crontab
per creare un nuovo cronjob che rinnoverà il certificato, creerà un nuovo file combinato incluso il tasto DH e riavvierà apache:
sudo crontab -e
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload
Salva e chiudi il file.
Per testare il processo di rinnovo, è possibile utilizzare il comando certbot seguito dall'opzione
--dry-run
:
sudo certbot renew --dry-run
Se non ci sono errori, significa che il processo di rinnovo è andato a buon fine.
Conclusione
In questa esercitazione, hai utilizzato il client certbot Let's Encrypt per scaricare i certificati SSL per il tuo dominio. Hai anche creato frammenti di Apache per evitare la duplicazione del codice e configurato Apache per l'utilizzo dei certificati. Alla fine del tutorial, hai impostato un cronjob per il rinnovo automatico del certificato.
apache centos crittografiamo certbot sslQuesto post fa parte dello Stack LAMP di installazione sulla serie CentOS 7.
Altri post di questa serie:
• Come installare Apache su CentOS 7 • Installare MySQL su CentOS 7 • Come configurare host virtuali Apache su CentOS 7 • Apache sicuro con Let's Encrypt su CentOS 7Apache sicuro con crittografiamo su centos 8

Questo tutorial spiega come installare un certificato SSL Let's Encrypt gratuito su CentOS 8 che esegue Apache come server web. Useremo lo strumento certbot per ottenere e rinnovare i certificati.
Apache sicuro con crittografiamo su debian 9

Questo tutorial ti guiderà attraverso il processo per ottenere un Let's Encrypt gratuito usando lo strumento certbot su Debian 9. Mostreremo anche come configurare Apache per usare il nuovo certificato SSL e abilitare HTTP / 2
Apache sicuro con crittografiamo su Ubuntu 18.04

In questo tutorial, forniremo istruzioni dettagliate su come proteggere Apache con Let's Encrypt usando lo strumento certbot su Ubuntu 18.04.