Setup Reverse Proxy on Synology NAS to host multiple Apps at home | 4K TUTORIAL
Cuprins:
- Cerințe preliminare
- Instalarea Certbot
- Generarea grupului Dh (Diffie-Hellman)
- Obținerea unui certificat SSL Encrypt
- Reînnoire automată Let's Encrypt SSL certificate
- Concluzie
Let's Encrypt este o autoritate de certificare gratuită, automatizată și deschisă, dezvoltată de Grupul de cercetare în domeniul securității internetului (ISRG), care furnizează certificate SSL gratuite.
Certificatele emise de Let's Encrypt sunt de încredere de către toate browserele majore și sunt valabile timp de 90 de zile de la data emiterii.
Acest tutorial arată cum să instalați un certificat SSL gratuit Encrypt SSL pe Debian 10, Buster care rulează Nginx ca server web. Vom arăta, de asemenea, cum să configurați Nginx pentru a utiliza certificatul SSL și pentru a activa HTTP / 2.
Cerințe preliminare
Asigurați-vă că sunt îndeplinite următoarele cerințe înainte de a continua cu ghidul:
- Conectat ca root sau utilizator cu privilegii sudo. Domeniul pentru care doriți să obțineți certificatul SSL trebuie să indice IP-ul serverului dvs. public. Vom folosi exemple.com. Nginx instalat.
Instalarea Certbot
Vom folosi instrumentul certbot pentru a obține și reînnoi certificatele.
Certbot este un instrument pe deplin și ușor de utilizat, care automatizează sarcinile pentru obținerea și reînnoirea certificatelor SSL Let's Encrypt și configurarea serverelor web pentru a utiliza certificatele.
Pachetul certbot este inclus în depozitele Debian implicite. Executați următoarele comenzi pentru a instala certbot:
sudo apt update
sudo apt install certbot
Generarea grupului Dh (Diffie-Hellman)
Schimbul de chei Diffie – Hellman (DH) este o metodă de a schimba în siguranță cheile criptografice pe un canal de comunicare nesecurizat.
Vom genera un nou set de parametri DH de 2048 biți pentru a consolida securitatea:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
De asemenea, puteți modifica dimensiunea până la 4096 biți, dar generația poate dura mai mult de 30 de minute în funcție de entropia sistemului.
Obținerea unui certificat SSL Encrypt
Pentru a obține un certificat SSL pentru domeniu, vom folosi pluginul Webroot. Funcționează prin crearea unui fișier temporar pentru validarea domeniului solicitat în directorul
${webroot-path}/.well-known/acme-challenge
. Serverul Let's Encrypt face solicitări HTTP la fișierul temporar pentru a valida dacă domeniul solicitat se rezolvă la serverul unde rulează certificbot.
Vom
.well-known/acme-challenge
toate cererile HTTP pentru
.well-known/acme-challenge
către un singur director,
/var/lib/letsencrypt
.
Executați următoarele comenzi pentru a crea directorul și a face să fie scris pentru serverul Nginx:
mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
Pentru a evita duplicarea codului, vom crea două fragmente care vor fi incluse în toate fișierele de blocuri de server Nginx.
Deschideți editorul de text și creați primul fragment,
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; }
Al doilea fragment
ssl.conf
include
ssl.conf
recomandate de Mozilla, permite OCSP Stapling, HTTP Strict Transport Security (HSTS) și aplică câteva anteturi HTTP concentrate pe securitate.
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.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; 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=63072000" always; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;
După ce ați terminat, deschideți fișierul de blocare a serverului de domeniu și includeți fragmentul
letsencrypt.conf
așa cum se arată mai jos:
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; }
Creați un link simbolic către directorul
sites-enabled
pentru
sites-enabled
pentru a activa blocul serverului de domeniu:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Reporniți serviciul Nginx pentru ca modificările să aibă efect:
sudo systemctl restart nginx
Acum sunteți gata să obțineți fișierele de certificat SSL rulând următoarea comandă:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Dacă certificatul SSL este obținut cu succes, următorul mesaj va fi tipărit pe terminalul dvs.:
IMPORTANT NOTES: 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-02-22. 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:
Editați blocul serverului de domeniu și includeți fișierele de certificat SSL după cum urmează:
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 }
Configurația de mai sus spune Nginx să redirecționeze de la HTTP la HTTPS și de la www la versiunea non-www.
Reporniți sau reîncărcați serviciul Nginx pentru ca modificările să aibă efect:
sudo systemctl restart nginx
Deschideți site-ul dvs. utilizând
https://
și veți observa o pictogramă de blocare verde.

Reînnoire automată Let's Encrypt SSL certificate
Certificatele Let's Encrypt sunt valabile 90 de zile. Pentru a reînnoi automat certificatele înainte de expirare, pachetul certbot creează un cronjob care rulează de două ori pe zi și reînnoiește automat orice certificat cu 30 de zile înainte de expirarea acestuia.
La reînnoire, serviciul nginx trebuie reîncărcat pentru ca serverul să încarce certificatul. Adăugați -
--renew-hook "systemctl reload nginx"
la fișierul
/etc/cron.d/certbot
astfel încât arată așa:
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"
Testați procesul de reînnoire automată, executând această comandă:
sudo certbot renew --dry-run
Dacă nu există erori, înseamnă că procesul de reînnoire a avut succes.
Concluzie
Posibilitatea unui certificat SSL este în prezent necesară. Securizează site-ul dvs. web, crește poziția de rang SERP și vă permite să activați HTTP / 2 pe serverul dvs. web.
În acest tutorial, v-am arătat cum puteți genera și reînnoi certificate SSL folosind scriptul certbot. De asemenea, v-am arătat cum puteți configura Nginx pentru a utiliza certificatele.
Pentru a afla mai multe despre Certbot, accesați documentația Certbot.
nginx debian hai să criptăm certbot sslSecurizați nginx cu ajutorul criptării pe Centos 7
În acest tutorial, vom oferi instrucțiuni pas cu pas despre cum să vă securizați Nginx cu Let's Encrypt folosind instrumentul certbot de pe CentOS 7
Securizați nginx cu ajutorul criptării pe ubuntu 18.04
Let's Encrypt este o autoritate de certificare gratuită și deschisă dezvoltată de Grupul de cercetare pentru securitatea internetului. În acest tutorial, vom oferi instrucțiuni pas cu pas despre cum să vă securizați Nginx cu Let's Encrypt folosind instrumentul certbot de pe Ubuntu 18.04
Securizați nginx cu ajutorul criptării pe ubuntu 16.04
În acest tutorial, vom oferi instrucțiuni pas cu pas despre cum să vă securizați Nginx cu Let's Encrypt folosind instrumentul certbot de pe Ubuntu 16.04







