Nginx

Nastavenie protokolu Nginx SSL v systéme Linux

Nastavenie protokolu Nginx SSL v systéme Linux

SSL (skratka pre secure socket layer) je webový protokol, ktorý zaisťuje bezpečnosť medzi serverom a klientom jeho šifrovaním. Server a klienti bezpečne prenášajú prenos bez rizika interpretácie komunikácie tretími stranami. Pomáha tiež klientovi overiť totožnosť webovej stránky, s ktorou komunikuje.

V tomto príspevku popíšeme, ako nastaviť SSL pre Nginx. Postup predvedieme pomocou certifikátu s vlastným podpisom. Certifikát s vlastným podpisom iba šifruje pripojenie, ale neoveruje identitu vášho servera. Preto by sa mal používať iba na testovacie prostredie alebo na interné služby LAN. Pre produkčné prostredie je lepšie používať certifikáty podpísané CA (certifikačná autorita).

Podmienky

Pre tento príspevok by ste mali mať nasledujúce predpoklady:

Tu vysvetlený postup bol vykonaný dňa Debian 10 (Buster) stroj.

Krok 1: Generovanie certifikátu s vlastným podpisom

Naším prvým krokom bude vygenerovanie certifikátu s vlastným podpisom. Zadajte nasledujúci príkaz v termináli na vygenerovanie CSR (žiadosť o podpis certifikátu) a kľúča:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout / etc / ssl / private / selfsigned-nginx.key-out / etc / ssl / certs / selfsigned-nginx.crt

Zobrazí sa výzva na zadanie niektorých informácií, ako je názov vašej krajiny, štát, lokalita, bežné meno (názov vašej domény alebo adresa IP) a e-mailová adresa.

Vo vyššie uvedenom príkaze vytvorí OpenSSL nasledujúce dva súbory:

Teraz vytvorte dhparam.pem súbor pomocou nasledujúceho príkazu:

$ sudo openssl dhparam -out / etc / ssl / certs / dhparam.pem 2048

Krok 2: Konfigurácia Nginx na používanie SSL

V predchádzajúcom kroku sme vytvorili správu o chemickej bezpečnosti a kľúč. Teraz v tomto kroku nakonfigurujeme Nginx tak, aby používal SSL. Za týmto účelom vytvoríme fragment konfigurácie a pridáme informácie o našich súboroch certifikátov SSL a umiestneniach kľúčov.

Zadajte nasledujúci príkaz v Termináli a vytvorte nový konfiguračný úryvok podpísaný sám sebou.conf súbor v / etc / nginx / snippets.

$ sudo nano / etc / nginx / snippets / self-signed.konf

Do súboru pridajte nasledujúce riadky:

ssl_certificate / etc / ssl / certs / selfsigned-nginx.crt;
ssl_certificate_key / etc / ssl / private / selfsigned-nginx.kľúč;

The ssl_certifikát je nastavený na selfsigned-nginx.crt (súbor s certifikátom), zatiaľ čo ssl_certificate_key je nastavený na selfsigned-nginx.kľúč (kľúčový súbor).

Uložte a zatvorte podpísaný sám sebou.konf spis.

Teraz vytvoríme ďalší súbor úryvku ssl-params.konf a nakonfigurovať niektoré základné nastavenia protokolu SSL. Zadaním nasledujúceho príkazu v termináli upravte ssl-params.konf spis:

$ sudo nano / etc / nginx / snippets / ssl-params.konf

Pridajte do súboru nasledujúci obsah:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers zapnutý;
ssl_dhparam / etc / ssl / certs / dhparam.pem;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512: DHE-RSA-AES256-GCM-SHA512: ECDHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES256-GCM-SHA384: ECDHE-RSA
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache zdieľané: SSL: 10m;
ssl_session_tickets off;
# ssl_stapling na;
# ssl_stapling_verify zapnuté;
rezolver 8.8.8.8 8.8.4.4 platné = 300 s;
resolver_timeout 5s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode = block";

Pretože nepoužívame certifikát podpísaný CA, deaktivovali sme zošívanie SSL. Ak používate certifikát podpísaný CA, odkomentujte ssl_stapling vstup.

Krok 3: Konfigurácia Nginx na používanie SSL

Teraz otvoríme konfiguračný súbor bloku servera Nginx, aby sme mohli vykonať nejaké konfigurácie.  V tomto kroku budeme predpokladať, že ste už nastavili blok servera, ktorý bude podobný tomuto:

server
počúvať 80;
počúvať [::]: 80;
root / var / www / test.org / html;
indexový index.html index.htm index.nginx-debian.html;
test server_name.org www.test.org;
miesto /
try_files $ uri $ uri / = 404;

Na otvorenie konfiguračného súboru bloku servera Nginx použite nasledujúci príkaz:

$ sudo nano / etc / nginx / sites-available / test.org

Teraz upravte existujúce server blok, aby to vyzeralo takto:

server
počúvať 443 ssl;
počúvať [::]: 443 ssl;
zahrnúť úryvky / podpísaný sám sebou.conf;
zahrňte úryvky / parametre ssl.conf;
root / var / www / test.org / html;
indexový index.html index.htm index.nginx-debian.html;
test server_name.org www.test.org;

Vo vyššie uvedených konfiguráciách sme pridali aj útržky SSL podpísaný sám sebou.konf a ssl-params.konf ktoré sme nakonfigurovali skôr.

Ďalej pridajte a druhý server blokovať.

server
počúvať 80;
počúvať [::]: 80;
test server_name.org www.test.org;
návrat 302 https: // $ názov_servera $ request_uri;

Vo vyššie uvedenej konfigurácii, návrat 302 presmeruje HTTP na HTTPS.

Poznámka: Nezabudnite vymeniť test.org s vlastným menom domény. Teraz súbor uložte a zatvorte.

Krok 4: Povolenie prenosu SSL cez bránu firewall

Ak je vo vašom systéme povolená brána firewall, budete musieť cez ňu povoliť prenos SSL.  Nginx vám poskytuje tri rôzne profily s ufw. Môžete ich zobraziť pomocou nižšie uvedeného príkazu v Termináli:

$ sudo ufw zoznam aplikácií

Uvidíte nasledujúci výstup s tromi profilmi pre prenos Nginx.

Vo firewalle budete musieť povoliť profil „Nginx Full“. Urobíte to pomocou nasledujúceho príkazu:

$ sudo ufw povoliť 'Nginx Full'

Ak chcete skontrolovať, či je profil povolený v bráne firewall, použite nasledujúci príkaz:

stav $ sudo ufw

Krok 5: Vyskúšajte konfiguračný súbor NGINX

Teraz otestujte konfiguračný súbor Nginx pomocou nižšie uvedeného príkazu v Termináli:

$ sudo nginx -t

Mali by ste vidieť výstup uvedený nižšie.


Teraz vytvorte symbolické prepojenie medzi dostupnými a povolenými stránkami:

$ ln -s / etc / nginx / sites-available / test.com / etc / nginx / sites-enabled /

Potom reštartujte službu Nginx, aby sa uplatnili zmeny v konfigurácii. Použite na to nasledujúci príkaz:

$ sudo systemctl reštart nginx

Krok 6: Vyskúšajte SSL

Teraz, aby ste otestovali SSL, prejdite na nasledujúcu adresu:

https: // doména alebo IP adresa

Keď sme nastavili certifikát s vlastným podpisom, zobrazí sa nám varovanie, že pripojenie nie je zabezpečené. Pri používaní prehliadača Mozilla Firefox sa zobrazí nasledujúca stránka.

Kliknite na ikonu Pokročilé tlačidlo.

Kliknite Pridať výnimku.

Potom kliknite Potvrďte bezpečnostnú výnimku.

Teraz uvidíte svoju stránku HTTPS, ale s výstražným znamením (zámok so žltým výstražným znamením) o bezpečnosti vášho webu.

Skontrolujte tiež, či presmerovanie funguje správne, a to tak, že sa pomocou protokolu http dostanete k svojej doméne alebo adrese IP.

http: // doména alebo IP adresa

Ak teraz váš web automaticky presmeruje na HTTPS, znamená to, že presmerovanie fungovalo správne. Ak chcete konfigurovať presmerovanie natrvalo, upravte konfiguračný súbor blokovania servera pomocou príkazu nižšie v Termináli:

$ sudo nano / etc / nginx / sites-available / test.org

Teraz zmeňte návratnosť 302 vrátiť sa 301 v súbore a potom ho uložte a zatvorte.

Takto môžete nastaviť SSL pre Nginx v systéme Debian 10. Nastavili sme certifikát s vlastným podpisom na demonštráciu. Ak sa nachádzate v produkčnom prostredí, vždy vyhľadajte certifikát CA.

Kurzor pri písaní v systéme Windows 10 skáče alebo sa pohybuje náhodne
Ak zistíte, že kurzor myši skáče alebo sa pohybuje sám, automaticky a náhodne pri písaní na notebooku alebo počítači so systémom Windows, niektoré z t...
Ako zmeniť smer posúvania myši a touchpadu v systéme Windows 10
Myš a TouchpadNielenže uľahčujú výpočty, ale sú aj efektívnejšie a menej časovo náročné. Nemôžeme si predstaviť život bez týchto zariadení, ale je pra...
Ako zmeniť veľkosť, farbu a schému ukazovateľa myši a kurzora v systéme Windows 10
Ukazovateľ myši a kurzor vo Windows 10 sú veľmi dôležité aspekty operačného systému. Dá sa to povedať aj pre iné operačné systémy, takže v skutočnosti...