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 creata da Internet Security Research Group (ISRG). Fornisce certificati SSL gratuiti tramite un processo completamente automatizzato progettato per eliminare la creazione, la convalida, l'installazione e il rinnovo manuali dei certificati.
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.
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.
Prerequisiti
Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con questo tutorial:
- Accesso come utente con privilegi sudo. Avere un nome di dominio che punta all'IP del server pubblico del server. Useremo
example.com
.Apache installato. Un host virtuale apache per il tuo dominio. Puoi seguire queste istruzioni per i dettagli su come crearne uno.
Installa Certbot
Certbot è uno strumento completo e facile da usare che può automatizzare le attività per ottenere e rinnovare i certificati SSL Let's Encrypt. Il pacchetto certbot è incluso nei repository Debian predefiniti.
Aggiorna l'elenco dei pacchetti e installa il pacchetto certbot usando i seguenti comandi:
sudo apt update
sudo apt install certbot
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.
Per generare un nuovo set di parametri DH 2048 bit eseguiti:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Se lo desideri, puoi modificare le dimensioni 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
in una singola directory,
/var/lib/letsencrypt
.
I seguenti comandi creano la directory e la rendono scrivibile per il server Apache.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp www-data /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 SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
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.
Prima di abilitare i file di configurazione, assicurarsi che sia
mod_ssl
che
mod_headers
siano abilitati emettendo:
sudo a2enmod ssl
sudo a2enmod headers
Abilita il modulo HTTP / 2, che renderà i tuoi siti più veloci e più robusti:
sudo a2enmod
Abilitare i file di configurazione SSL eseguendo i seguenti comandi:
sudo a2enconf letsencrypt
sudo a2enconf ssl-params
Ricarica la configurazione di Apache per rendere effettive le modifiche:
sudo systemctl reload apache2
Utilizzare lo strumento Certbot con il plugin webroot per ottenere i file del certificato SSL:
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: IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2019-01-17. 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 lose your account credentials, you can recover through e-mails sent to [email protected]. - 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 hai i file del certificato, modifica la configurazione dell'host virtuale del tuo dominio come segue:
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 ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/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 ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/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 ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/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 ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/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
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.
Ricarica il servizio Apache per rendere effettive le modifiche:
sudo systemctl reload apache2
Apri 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, il pacchetto certbot crea un cronjob che viene eseguito due volte al giorno e rinnoverà automaticamente qualsiasi certificato 30 giorni prima della scadenza.
Una volta rinnovato il certificato, dobbiamo anche ricaricare il servizio Apache. Aggiungi
--renew-hook "systemctl reload apache2"
al file
/etc/cron.d/certbot
modo che sia simile al seguente:
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 apache2"
Per testare il processo di rinnovo, utilizzare l'
--dry-run
certbot
--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 ottenere 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 debian crittografiamo certbot sslQuesto post fa parte di How to Install LAMP Stack su Debian 9 series.
Altri post di questa serie:
• Come installare Apache su Debian 9 • Come installare PHP su Debian 9 • Come configurare host virtuali Apache su Debian 9 • Come installare MariaDB su Debian 9 • Apache sicuro con Let's Encrypt su Debian 9Apache 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 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 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.