Nginx

„Nginx SSL“ sąranka sistemoje „Linux“

„Nginx SSL“ sąranka sistemoje „Linux“

SSL (reiškia saugų lizdų sluoksnį) yra žiniatinklio protokolas, kuris saugo srautą tarp serverio ir kliento, jį užšifruodamas. Serveris ir klientai saugiai perduoda srautą be pavojaus, kad trečiosios šalys interpretuos ryšį. Tai taip pat padeda klientui patikrinti svetainės, su kuria bendraujama, tapatybę.

Šiame įraše aprašysime, kaip sukonfigūruoti SSL „Nginx“. Mes parodysime procedūrą naudodamiesi savo pasirašytu sertifikatu. Savarankiškai pasirašytas sertifikatas tik užšifruoja ryšį, bet nepatvirtina jūsų serverio tapatybės. Todėl jis turėtų būti naudojamas tik bandant aplinką arba vidinėms LAN paslaugoms. Gamybos aplinkai geriau naudoti sertifikatus, pasirašytus CA (sertifikavimo institucija).

Išankstiniai reikalavimai

Šiam įrašui turėtumėte turėti šiuos išankstinius reikalavimus:

Atlikta čia paaiškinta procedūra „Debian 10“ („Buster“) mašina.

1 veiksmas: sukurkite savarankiškai pasirašytą sertifikatą

Pirmas žingsnis bus sugeneruoti pačių pasirašytą sertifikatą. Išduokite šią komandą „Terminal“, kad sugeneruotumėte CSR (sertifikato pasirašymo užklausą) ir raktą:

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

Būsite paraginti pateikti tam tikrą informaciją, pvz., Savo šalies pavadinimą, valstiją, vietovę, bendrąjį pavadinimą (domeno vardą arba IP adresą) ir el. Pašto adresą.

Pirmiau pateiktoje komandoje „OpenSSL“ sukurs šiuos du failus:

Dabar sukurkite dhparamas.pem failas naudojant šią komandą:

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

2 žingsnis: „Nginx“ konfigūravimas naudoti SSL

Ankstesniame etape sukūrėme ĮSA ir raktą. Dabar atlikdami šį veiksmą sukonfigūruosime „Nginx“ naudoti SSL. Tam sukursime konfigūracijos fragmentą ir pridėsime informaciją apie mūsų SSL sertifikato failus ir pagrindines vietas.

Išduokite žemiau esančią komandą „Terminal“, kad sukurtumėte naują konfigūracijos fragmentą pasirašė pats.konf failas viduje konors / etc / nginx / fragmentai.

$ sudo nano / etc / nginx / fragmentai / savarankiškai pasirašyti.konf

Į failą pridėkite šias eilutes:

ssl_certificate / etc / ssl / certs / selfsigned-nginx.crt;
ssl_certificate_key / etc / ssl / private / selfsigned-nginx.Raktas;

The ssl_certificate yra nustatytas į selfsigned-nginx.krt (pažymos byla), o ssl_certificate_key yra nustatytas į selfsigned-nginx.Raktas (pagrindinė byla).

Išsaugokite ir uždarykite pasirašė pats.konf failą.

Dabar sukursime kitą fragmento failą ssl-params.konf ir sukonfigūruokite kai kuriuos pagrindinius SSL nustatymus. Išduokite žemiau esančią komandą terminale, kad galėtumėte redaguoti ssl-params.konf failas:

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

Į failą įtraukite šį turinį:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers įjungti;
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 pasidalino: SSL: 10m;
ssl_session_tickets off;
# ssl_stapling on;
# ssl_stapling_verify on;
8 sprendimas.8.8.8 8.8.4.4 galioja = 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";

Kadangi nenaudojame CA pasirašyto sertifikato, todėl išjungėme SSL susegimą. Jei naudojate CA pasirašytą sertifikatą, atžymėkite ssl_stapling įrašas.

3 žingsnis: „Nginx“ konfigūravimas naudoti SSL

Dabar atidarysime „Nginx“ serverio bloko konfigūracijos failą, kad atliktume keletą konfigūracijų.  Atlikdami šį veiksmą, manysime, kad jau nustatėte serverio bloką, kuris bus panašus į šį:

serveris
klausytis 80;
klausyk [::]: 80;
root / var / www / testas.org / html;
indekso indeksas.HTML indeksas.htm indeksas.nginx-debian.HTML;
server_name testas.org www.testas.org;
vieta /
try_files $ uri $ uri / = 404;

Norėdami atidaryti „Nginx“ serverio bloko konfigūracijos failą, naudokite šią komandą:

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

Dabar modifikuokite esamą serverio užblokuokite, kad atrodytų taip:

serveris
klausytis 443 ssl;
klausyk [::]: 443 ssl;
įtraukti fragmentus / pačių pasirašytus.konf
įtraukti fragmentus / ssl-params.konf
root / var / www / testas.org / html;
indekso indeksas.HTML indeksas.htm indeksas.nginx-debian.HTML;
server_name testas.org www.testas.org;

Pirmiau pateiktose konfigūracijose mes taip pat pridėjome SSL fragmentus pasirašė pats.konf ir ssl-params.konf kad mes sukonfigūravome anksčiau.

Tada pridėkite a antrasis serveris blokuoti.

serveris
klausytis 80;
klausyk [::]: 80;
server_name testas.org www.testas.org;
grąžinti 302 https: // $ server_name $ request_uri;

Pirmiau pateiktoje konfigūracijoje, grįžti 302 peradresuoja HTTP į HTTPS.

Pastaba: Būtinai pakeiskite testą.org su savo domeno vardu. Dabar išsaugokite ir uždarykite failą.

4 žingsnis: Leiskite SSL srautą per užkardą

Jei jūsų sistemoje įgalinta užkarda, turėsite leisti SSL srautą per ją.  „Nginx“ suteikia jums tris skirtingus profilius su „ufw“. Galite juos peržiūrėti naudodami žemiau esančią komandą „Terminal“:

$ sudo ufw programų sąrašas

Pamatysite šią išvestį su trimis „Nginx“ srauto profiliais.

Ugniasienėje turėsite leisti profilį „Nginx Full“. Norėdami tai padaryti, naudokite šią komandą:

$ sudo ufw leisti „Nginx Full“

Norėdami patikrinti, ar profilis buvo leidžiamas užkardoje, naudokite šią komandą:

$ sudo ufw būsena

5 veiksmas: išbandykite NGINX konfigūracijos failą

Dabar išbandykite „Nginx“ konfigūracijos failą naudodami žemiau esančią komandą „Terminal“:

$ sudo nginx -t

Turėtumėte pamatyti žemiau pateiktą išvestį.


Dabar sukurkite simbolinę nuorodą tarp galimų svetainių ir įgalintų svetainių:

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

Tada iš naujo paleiskite „Nginx“ paslaugą, kad pritaikytumėte konfigūracijos pakeitimus. Norėdami tai padaryti, naudokite žemiau esančią komandą:

$ sudo systemctl paleiskite iš naujo „nginx“

6 veiksmas: išbandykite SSL

Dabar, norėdami išbandyti SSL, eikite į šį adresą:

https: // domeno arba IP adresas

Kadangi mes nustatėme pačių pasirašytą sertifikatą, pamatysime įspėjimą, kad ryšys nėra saugus. Šis puslapis pasirodo naudojant „Mozilla Firefox“ naršyklę.

Spustelėkite Išplėstinė mygtuką.

Spustelėkite Pridėti išimtį.

Tada spustelėkite Patvirtinkite saugos išimtį.

Dabar pamatysite savo HTTPS svetainę, bet su įspėjamuoju ženklu (užrakinkite geltonu įspėjamuoju ženklu) apie savo svetainės saugumą.

Be to, patikrinkite, ar peradresavimas veikia tinkamai, pasiekdami savo domeną ar IP adresą naudodami http.

http: // domeno arba IP adresas

Dabar, jei jūsų svetainė automatiškai nukreipia į HTTPS, tai reiškia, kad peradresavimas veikė tinkamai. Norėdami visam laikui sukonfigūruoti peradresavimą, redaguokite serverio bloko konfigūracijos failą naudodami žemiau esančią komandą terminale:

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

Dabar pakeiskite grąžą 302 Grįžti 301 faile, tada išsaugokite ir uždarykite.

Taip galite nustatyti „SSL“ „Nginx“ sistemoje „Debian 10“. Mes sukūrėme pačių pasirašytą sertifikatą demonstravimui. Jei esate gamybos aplinkoje, visada ieškokite CA sertifikato.

„SuperTuxKart“, skirta „Linux“
„SuperTuxKart“ yra puikus pavadinimas, sukurtas nemokamai suteikti „Mario Kart“ patirtį jūsų „Linux“ sistemoje. Tai gana sudėtinga ir smagu žaisti, yr...
„Battle for Wesnoth“ pamoka
„Battle for Wesnoth“ yra vienas populiariausių atvirojo kodo strateginių žaidimų, kurį šiuo metu galite žaisti. Šis žaidimas ne tik buvo kuriamas laba...
0 A.D. Pamoka
Iš daugybės strateginių žaidimų 0 A.D. sugeba išsiskirti kaip išsamus pavadinimas ir labai gilus, taktinis žaidimas, nepaisant to, kad yra atviro kodo...