Setup Reverse Proxy on Synology NAS to host multiple Apps at home | 4K TUTORIAL
Cuprins:
- Cerințe preliminare
- Instalarea Certbot
- Generarea grupului puternic 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.
În acest tutorial, vă vom oferi instrucțiuni pas cu pas despre cum se instalează un certificat SSL gratuit Encrypt SSL pe CentOS 8 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
Înainte de a continua, asigurați-vă că ați îndeplinit următoarele cerințe preliminare:
- Aveți un nume de domeniu îndreptat către IP-ul dvs. public. Vom folosi
example.com. Aveți Nginx instalat pe serverul dvs. CentOS. Firewall-ul dvs. este configurat pentru a accepta conexiuni pe porturile 80 și 443.
Instalarea Certbot
Certbot este un instrument gratuit pentru linia de comandă care simplifică procesul de obținere și reînnoire a Criptării certificatelor SSL de la și de auto-activare HTTPS pe serverul dvs.
Pachetul certbot nu este inclus în depozitele standard CentOS 8, dar poate fi descărcat de pe site-ul web al vânzătorului.
Rulați următoarea comandă
wget
ca utilizator root sau sudo pentru a descărca scriptul certbot în directorul
/usr/local/bin
:
sudo wget -P /usr/local/bin
După ce descărcarea este completă, faceți fișierul executabil:
sudo chmod +x /usr/local/bin/certbot-auto
Generarea grupului puternic 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.
Generați un set nou de parametri DH 2048 biți, tastând următoarea comandă:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Obținerea unui certificat SSL Encrypt
Pentru a obține un certificat SSL pentru domeniu, vom folosi pluginul Webroot care 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.
Pentru a fi mai simplu, vom face o hartă a tuturor cererilor HTTP pentru
.well-known/acme-challenge
către un singur director,
/var/lib/letsencrypt
.
Următoarele comenzi vor crea directorul și îl vor putea scrie pentru serverul Nginx.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp nginx /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
Pentru a evita duplicarea codului, creați următoarele două fragmente care vor fi incluse în toate fișierele blocului de server Nginx:
sudo mkdir /etc/nginx/snippets
/etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
/etc/nginx/snippets/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; 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;
Fragmentul de mai sus include ciperele recomandate de Mozilla, permite OCSP Stapling, HTTP Strict Transport Security (HSTS) și aplică puține anteturi HTTP concentrate pe securitate.
Odată create fragmentele, deschideți blocul serverului de domeniu și includeți fragmentul de
letsencrypt.conf
, după cum se arată mai jos:
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
Reîncărcați configurația Nginx pentru ca modificările să aibă efect:
sudo systemctl reload nginx
Rulați instrumentul certbot cu pluginul webroot pentru a obține fișierele de certificat SSL pentru domeniul dvs.:
sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Dacă este prima dată când invocați
certbot
, instrumentul va instala dependențele lipsă.
După ce certificatul SSL este obținut cu succes, certificbot va imprima următorul mesaj:
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-03-12. 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" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
Acum că aveți fișierele de certificare, puteți să vă editați blocul de server de domeniu după cum urmează:
/etc/nginx/conf.d/example.com.conf
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 }
Cu configurația de mai sus, forțăm HTTPS și redirecționăm www către versiunea non www.
În sfârșit, reîncărcați serviciul Nginx pentru ca modificările să aibă efect:
sudo systemctl reload nginx
Acum, 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 a expira, creează un cronjob care va rula de două ori pe zi și reînnoiește automat orice certificat cu 30 de zile înainte de expirare.
Folosiți comanda
crontab
pentru a crea un nou cronjob:
sudo crontab -e
Lipiți următoarea linie:
0 */12 * * * root test -x /usr/local/bin/certbot-auto -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && /usr/local/bin/certbot-auto -q renew --renew-hook "systemctl reload nginx"
Salvați și închideți fișierul.
Pentru a testa procesul de reînnoire, puteți utiliza comanda certbot urmată de comutatorul
--dry-run
:
sudo certbot renew --dry-run
Dacă nu există erori, înseamnă că procesul de reînnoire a testului a avut succes.
Concluzie
În acest tutorial, v-am arătat cum să utilizați clientul „Encrypt”, certificat pentru a descărca certificate SSL pentru domeniul dvs. De asemenea, am creat fragmente Nginx pentru a evita duplicarea codului și am configurat Nginx pentru a utiliza certificatele. La sfârșitul tutorialului, am creat un cronjob pentru reînnoirea automată a certificatelor.
Pentru a afla mai multe despre Certbot, vizitați pagina lor de documentare.
nginx centos 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







