Nginx

Nginx SSL iestatīšana Linux

Nginx SSL iestatīšana Linux

SSL (apzīmē drošu ligzdu slāni) ir tīmekļa protokols, kas trafiku starp serveri un klientu padara drošu, to šifrējot. Serveris un klienti droši pārraida datplūsmu, neriskējot, ka trešās puses interpretēs saziņu. Tas arī palīdz klientam pārbaudīt tās vietnes identitāti, ar kuru viņi sazinās.

Šajā amatā mēs aprakstīsim, kā iestatīt SSL Nginx. Mēs demonstrēsim procedūru, izmantojot pašu parakstītu sertifikātu. Pašparakstīts sertifikāts tikai šifrē savienojumu, bet neapstiprina jūsu servera identitāti. Tāpēc to vajadzētu izmantot tikai vides pārbaudei vai iekšējiem LAN pakalpojumiem. Ražošanas videi labāk izmantot sertifikātus, ko parakstījusi CA (sertifikātu iestāde).

Priekšnoteikumi

Šai ziņai jums vajadzētu būt šādiem priekšnosacījumiem:

Šeit paskaidrotā procedūra ir veikta Debian 10 (Buster) mašīna.

1. darbība: Pašparakstīta sertifikāta ģenerēšana

Pirmais solis būs pašparakstīta sertifikāta ģenerēšana. Lai ģenerētu CSR (sertifikāta parakstīšanas pieprasījumu) un atslēgu, izsniedziet šādu komandu Terminal:

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

Jums tiks piedāvāts sniegt noteiktu informāciju, piemēram, jūsu valsts nosaukumu, valsti, apdzīvoto vietu, parasto nosaukumu (jūsu domēna nosaukumu vai IP adresi) un e-pasta adresi.

Iepriekš minētajā komandā OpenSSL izveidos šādus divus failus:

Tagad izveidojiet dhparam.pem fails izmantojot šādu komandu:

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

2. darbība: Nginx konfigurēšana lietošanai SSL

Iepriekšējā solī mēs esam izveidojuši CSR un atslēgu. Šajā solī mēs konfigurēsim Nginx izmantot SSL. Šim nolūkam mēs izveidosim konfigurācijas fragmentu un pievienosim informāciju par mūsu SSL sertifikātu failiem un galvenajām atrašanās vietām.

Izdodiet komandu Terminal, lai izveidotu jaunu konfigurācijas fragmentu pašparakstīts.conf fails iekš / etc / nginx / fragmenti.

$ sudo nano / etc / nginx / snippets / self-parakstīts.konf

Failā pievienojiet šādas rindas:

ssl_certificate / etc / ssl / certs / selfsigned-nginx.crt;
ssl_certificate_key / etc / ssl / private / selfsigned-nginx.atslēga;

The ssl_certificate ir iestatīts uz pašparaksts-nginx.crt (sertifikāta fails), kamēr ssl_certificate_key ir iestatīts uz pašparaksts-nginx.taustiņu (atslēgas fails).

Saglabājiet un aizveriet pašparakstīts.konf failu.

Tagad mēs izveidosim vēl vienu fragmenta failu ssl-params.konf un konfigurējiet dažus SSL pamata iestatījumus. Izdodiet šādu komandu Terminal, lai rediģētu ssl-params.konf fails:

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

Pievienojiet failam šādu saturu:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers ieslēgts;
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: ECDA4E;
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache koplietots: SSL: 10m;
ssl_session_tickets off;
# ssl_stapling on;
# ssl_stapling_verify on;
8. risinātājs.8.8.8 8.8.4.4 derīgi = 300s;
resolver_timeout 5s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode = block";

Tā kā mēs neizmantojam CA parakstītu sertifikātu, tāpēc esam atspējojuši SSL skavošanu. Ja izmantojat CA parakstītu sertifikātu, noņemiet komentāru ssl_stapling ieraksts.

3. darbība: konfigurējiet Nginx lietošanai SSL

Tagad mēs atvērsim Nginx servera bloka konfigurācijas failu, lai veiktu dažas konfigurācijas.  Šajā solī mēs pieņemsim, ka jūs jau esat iestatījis servera bloku, kas būs līdzīgs šim:

serveris
klausīties 80;
klausies [::]: 80;
root / var / www / test.org / html;
indeksa indekss.HTML indekss.htm indekss.nginx-debian.html;
servera_nosaukuma pārbaude.org www.pārbaude.org;
atrašanās vieta /
try_files $ uri $ uri / = 404;

Lai atvērtu Nginx servera bloka konfigurācijas failu, izmantojiet šādu komandu:

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

Tagad modificējiet esošo serveris bloķēt, lai tas izskatās šādi:

serveris
klausīties 443 ssl;
klausies [::]: 443 ssl;
ietver fragmentus / pašparakstus.konf;
ietver fragmentus / ssl-params.konf;
root / var / www / test.org / html;
indeksa indekss.HTML indekss.htm indekss.nginx-debian.html;
servera_nosaukuma pārbaude.org www.pārbaude.org;

Iepriekš minētajās konfigurācijās mēs esam pievienojuši arī SSL fragmentus pašparakstīts.konf un ssl-params.konf ko esam konfigurējuši iepriekš.

Pēc tam pievienojiet a otrais serveris bloķēt.

serveris
klausīties 80;
klausies [::]: 80;
servera_nosaukuma pārbaude.org www.pārbaude.org;
atgriezties 302 https: // $ servera_nosaukums $ pieprasijums_uri;

Iepriekš minētajā konfigurācijā, atgriešanās 302 novirza HTTP uz HTTPS.

Piezīme: Pārliecinieties, ka esat nomainījis testu.org ar savu domēna vārdu. Tagad saglabājiet un aizveriet failu.

4. darbība. Atļaujiet SSL trafiku, izmantojot ugunsmūri

Ja jūsu sistēmā ir iespējots ugunsmūris, jums būs jāļauj SSL trafiks caur to.  Nginx nodrošina trīs dažādus profilus ar ufw. Tos var apskatīt, izmantojot šādu komandu Terminal:

$ sudo ufw lietotņu saraksts

Jūs redzēsiet šādu izvadi ar trim Nginx trafika profiliem.

Ugunsmūrī jums būs jāatļauj profils “Nginx Full”. Lai to izdarītu, izmantojiet šādu komandu:

$ sudo ufw ļauj 'Nginx Full'

Lai pārbaudītu, vai profils ir atļauts ugunsmūrī, izmantojiet šādu komandu:

$ sudo ufw statuss

5. darbība: pārbaudiet NGINX konfigurācijas failu

Tagad pārbaudiet Nginx konfigurācijas failu, izmantojot šādu komandu Terminal:

$ sudo nginx -t

Jums vajadzētu redzēt zemāk esošo izvadi.


Tagad izveidojiet simbolisko saiti starp pieejamām vietnēm un vietnēm, kurās iespējota:

$ ln -s / etc / nginx / sites-available / test.com / etc / nginx / iespējotas vietnes /

Pēc tam restartējiet pakalpojumu Nginx, lai piemērotu konfigurācijas izmaiņas. Lai to izdarītu, izmantojiet zemāk esošo komandu:

$ sudo systemctl restartējiet nginx

6. darbība: pārbaudiet SSL

Lai pārbaudītu SSL, dodieties uz šo adresi:

https: // domēna vai IP adrese

Tā kā esam iestatījuši pašparakstītu sertifikātu, mēs redzēsim brīdinājumu, ka savienojums nav drošs. Lietojot Mozilla Firefox pārlūku, tiek parādīta šī lapa.

Noklikšķiniet uz Papildu pogu.

Klikšķis Pievienot izņēmumu.

Pēc tam noklikšķiniet Apstipriniet drošības izņēmumu.

Tagad jūs redzēsiet savu HTTPS vietni, bet ar brīdinājuma zīmi (bloķējiet ar dzeltenu brīdinājuma zīmi) par savas vietnes drošību.

Pārbaudiet arī, vai novirzīšana darbojas pareizi, piekļūstot savam domēnam vai IP adresei, izmantojot http.

http: // domēna vai IP adrese

Ja jūsu vietne automātiski novirza uz HTTPS, tas nozīmē, ka novirzīšana darbojās pareizi. Lai neatgriezeniski konfigurētu novirzīšanu, rediģējiet servera bloka konfigurācijas failu, izmantojot šādu komandu Terminal:

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

Tagad mainiet atdevi 302 Atgriezties 301 failā un pēc tam saglabājiet un aizveriet to.

Tieši tā jūs varat iestatīt SSL Nginx sistēmā Debian 10 sistēmā. Mēs esam izveidojuši pašparakstītu sertifikātu demonstrēšanai. Ja atrodaties ražošanas vidē, vienmēr iegūstiet CA sertifikātu.

Labākie Linux spēļu konsoles emulatori
Šajā rakstā tiks uzskaitīta populārā Linux spēļu konsoles atdarināšanas programmatūra. Emulācija ir programmatūras saderības slānis, kas atdarina spēļ...
Labākie Linux spēļu draiveri 2021. gadā
Linux operētājsistēma ir gājusi tālu no sākotnējā, vienkāršā uz serveriem balstītā izskata. Šī operētājsistēma pēdējos gados ir ārkārtīgi uzlabojusies...
Kā tvert un straumēt spēļu sesiju operētājsistēmā Linux
Agrāk spēļu spēlēšana tika uzskatīta tikai par hobiju, taču laika gaitā spēļu industrija piedzīvoja milzīgu tehnoloģiju un spēlētāju skaita pieaugumu....