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) che fornisce certificati SSL gratuiti.
I certificati emessi da Let's Encrypt sono considerati affidabili da tutti i principali browser e sono validi per 90 giorni dalla data di emissione.
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.
Prerequisiti
Assicurarsi che siano soddisfatti i seguenti prerequisiti prima di continuare:
- Avere un nome di dominio che punta all'IP del server pubblico. Useremo
example.com
Apache è installato e in esecuzione sul tuo server con un host virtuale configurato 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:
sudo dnf install mod_ssl openssl
Quando il pacchetto mod_ssl è installato, dovrebbe creare una chiave autofirmata e file di certificato per l'host locale. Se i file non vengono creati automaticamente, è possibile crearli usando il comando
openssl
:
sudo openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes \
-out /etc/pki/tls/certs/localhost.crt \
-keyout /etc/pki/tls/private/localhost.key
Installa Certbot
Certbot è uno strumento da riga di comando gratuito che semplifica il processo per ottenere e rinnovare Let's Encrypt certificati SSL e abilitare automaticamente HTTPS sul tuo server.
Il pacchetto certbot non è incluso nei repository standard di CentOS 8, ma può essere scaricato dal sito Web del fornitore.
Eseguire il seguente comando
wget
come utente root o sudo per scaricare lo script certbot nella
/usr/local/bin
:
sudo wget -P /usr/local/bin
Una volta completato il download, rendere eseguibile il file:
sudo chmod +x /usr/local/bin/certbot-auto
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 la generazione può 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 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 l'installazione più semplice andremo a mappare tutte le richieste HTTP per
.well-known/acme-challenge
a una singola directory,
/var/lib/letsencrypt
.
Eseguire i comandi seguenti 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 e rendere più gestibile la configurazione, creare i seguenti due frammenti di configurazione:
/etc/httpd/conf.d/letsencrypt.conf
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 # Requires Apache 2.4.36 & OpenSSL 1.1.1 SSLProtocol -all +TLSv1.3 +TLSv1.2 SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1 # Older versions # 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 SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
Lo snippet sopra sta usando le cippatrici consigliate da Cipherli.st. Consente la pinzatura OCSP, la sicurezza del trasporto rigorosa HTTP (HSTS), la chiave Dh e applica poche intestazioni HTTP incentrate sulla sicurezza.
Ricarica la configurazione di Apache per rendere effettive le modifiche:
sudo systemctl reload
Ora puoi eseguire lo script certbot con il plugin webroot e recuperare i file del certificato SSL:
sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
In caso di successo, 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 2020-01-26. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
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 Protocols h2 http:/1.1 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/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 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/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 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/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 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/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
La configurazione sopra sta forzando HTTPS e reindirizzando dalla versione www alla versione non www. Abilita anche HTTP / 2, che renderà i tuoi siti più veloci e più robusti. Sentiti libero di adattare la configurazione in base alle tue esigenze.
Riavvia il servizio Apache:
sudo systemctl restart
Ora puoi aprire il tuo sito Web utilizzando
https://
e noterai un'icona di blocco 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 rinnoverà automaticamente qualsiasi certificato 30 giorni prima della sua scadenza.
Esegui il comando seguente per creare un nuovo cronjob che rinnoverà il certificato e riavvierà Apache:
echo "0 0, 12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto -q renew --renew-hook \"systemctl reload httpd\"" | sudo tee -a /etc/crontab > /dev/null
Per testare il processo di rinnovo, utilizzare il comando certbot seguito dall'opzione
--dry-run
:
sudo /usr/local/bin/certbot-auto renew --dry-run
Se non ci sono errori, significa che il processo di rinnovo è andato a buon fine.
Conclusione
In questo tutorial, abbiamo parlato di come utilizzare il certbot client Let's Encrypt su CentOS per ottenere certificati SSL per i tuoi domini. Hai anche mostrato come configurare Apache per usare i certificati e impostare un cronjob per il rinnovo automatico dei certificati.
Per ulteriori informazioni sullo script Certbot, visitare la documentazione di Certbot.
apache centos crittografiamo certbot sslApache sicuro con crittografiamo su centos 7

In questa esercitazione verranno illustrati i passaggi necessari per installare un certificato SSL Let's Encrypt gratuito su un server CentOS 7 che esegue Apache come server Web.
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.