OBS Studio: multistream gratis con NGINX. Tutorial completo
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 e aperta sviluppata da Internet Security Research Group (ISRG). I certificati emessi da Let's Encrypt sono oggi considerati affidabili da quasi tutti i browser.
In questo tutorial, spiegheremo come usare lo strumento Certbot per ottenere un certificato SSL gratuito per Nginx su Debian 9. Mostreremo anche come configurare Nginx per usare il certificato SSL e abilitare HTTP / 2.
Prerequisiti
Assicurarsi che siano soddisfatti i seguenti prerequisiti prima di continuare con questa esercitazione:
- Accesso come utente con privilegi sudo. Avere un nome di dominio che punta all'IP del server pubblico. Useremo
example.com
Avere Nginx installato seguendo queste istruzioni. Hai un blocco server 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 e configurare i server Web per utilizzare i certificati. Il pacchetto certbot è incluso nei repository Debian predefiniti.
Aggiorna l'elenco dei pacchetti e installa il pacchetto certbot:
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. Genereremo un nuovo set di parametri DH a 2048 bit per rafforzare la sicurezza:
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.
.well-known/acme-challenge
tutte le richieste HTTP per
.well-known/acme-challenge
in una singola directory,
/var/lib/letsencrypt
.
I seguenti comandi creeranno la directory e la renderanno scrivibile per il server Nginx.
mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
Per evitare la duplicazione del codice, creare i seguenti due frammenti che verranno inclusi in tutti i nostri file di blocco del server Nginx.
Apri il tuo editor di testo e crea il primo frammento,
letsencrypt.conf
:
sudo nano /etc/nginx/snippets/letsencrypt.conf
/etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
Crea il secondo frammento
ssl.conf
che include i cippatori consigliati da Mozilla, abilita la pinzatura OCSP, HTTP Strict Transport Security (HSTS) e applica poche intestazioni HTTP incentrate sulla sicurezza.
sudo nano /etc/nginx/snippets/ssl.conf
/etc/nginx/snippets/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 30s; add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload"; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;
Una volta fatto, apri il file di blocco del server di dominio e includi lo snippet
letsencrypt.conf
come mostrato di seguito:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
Abilitare il nuovo blocco server creando un collegamento simbolico alla directory
sites-enabled
per i
sites-enabled
:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Riavvia il servizio Nginx per rendere effettive le modifiche:
sudo systemctl restart nginx
Ora puoi eseguire Certbot con il plugin webroot e ottenere i file del certificato SSL emettendo:
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, sul terminale verrà stampato 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-07-28. 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" - 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:
Quindi, modificare il blocco del server di dominio come segue:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; #… other code }
Con la configurazione sopra stiamo forzando HTTPS e reindirizzando dalla versione www alla versione non www.
Ricarica il servizio Nginx per rendere effettive le modifiche:
Rinnovo automatico Let's Encrypt SSL certificate
I certificati Let's Encrypt sono validi per 90 giorni. Per rinnovare automaticamente i certificati prima della scadenza, il pacchetto certbot crea un cronjob che viene eseguito due volte al giorno e rinnova automaticamente qualsiasi certificato 30 giorni prima della scadenza.
Dato che stiamo usando il plug-in webroot certbot una volta rinnovato il certificato, dobbiamo anche ricaricare il servizio nginx. Aggiungi
--renew-hook "systemctl reload nginx"
al file
/etc/cron.d/certbot
questo modo:
sudo nano /etc/cron.d/certbot
/etc/cron.d/certbot
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 nginx"
Testare il processo di rinnovo automatico, eseguendo questo comando:
sudo certbot renew --dry-run
Se non ci sono errori, significa che il processo di rinnovo è andato a buon fine.
Conclusione
Avere un certificato SSL è un must al giorno d'oggi. Protegge il tuo sito Web, aumenta la posizione in classifica SERP e ti consente di abilitare HTTP / 2 sul tuo server web.
In questa esercitazione, hai utilizzato il client Let's Encrypt, certbot per generare certificati SSL per il tuo dominio. Hai anche creato frammenti di Nginx per evitare la duplicazione del codice e configurato Nginx per l'utilizzo dei certificati. Alla fine del tutorial è stato impostato un cronjob per il rinnovo automatico del certificato.
nginx debian crittografiamo certbot sslQuesto post fa parte di Come installare lo stack LEMP sulla serie Debian 9.
Altri post di questa serie:
• Come installare MariaDB su Ubuntu 18.04 • Come installare Nginx su Debian 9 • Come installare PHP su Debian 9 • Come configurare i blocchi di server Nginx su Debian 9 • Nginx sicuro con Let's Encrypt su Debian 9Nginx sicuro con crittografiamo su centos 7

In questo tutorial, forniremo istruzioni dettagliate su come proteggere Nginx con Let's Encrypt usando lo strumento certbot su CentOS 7
Nginx sicuro con crittografiamo su Ubuntu 18.04

Let's Encrypt è un'autorità di certificazione libera e aperta sviluppata da Internet Security Research Group. In questo tutorial, forniremo istruzioni dettagliate su come proteggere Nginx con Let's Encrypt usando lo strumento certbot su Ubuntu 18.04
Nginx sicuro con crittografiamo su debian 10 linux

Questo tutorial mostra come installare un certificato SSL Let's Encrypt gratuito su Debian 10, Buster che esegue Nginx come server web. Mostreremo anche come configurare Nginx per usare il certificato SSL e abilitare HTTP / 2.