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:
- „Nginx“ jau įdiegta jūsų kompiuteryje
- Serverio blokas sukonfigūruotas jūsų domenui
- Vartotojas, turintis sudo teises
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.krtBū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:
- ĮSA: selfsigned-nginx.krt į / etc / ssl / cert / katalogas
- Raktas: selfsigned-nginx.Raktas viduje konors / etc / ssl / privatus katalogas
Dabar sukurkite dhparamas.pem failas naudojant šią komandą:
$ sudo atveria dhparam -out / etc / ssl / certs / dhparam.pem 2048 m2 ž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 į šį:
serverisklausytis 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.orgDabar modifikuokite esamą serverio užblokuokite, kad atrodytų taip:
serverisklausytis 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.
serverisklausytis 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šasPamatysite š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ūsena5 veiksmas: išbandykite NGINX konfigūracijos failą
Dabar išbandykite „Nginx“ konfigūracijos failą naudodami žemiau esančią komandą „Terminal“:
$ sudo nginx -tTurėtumėte pamatyti žemiau pateiktą išvestį.
Dabar sukurkite simbolinę nuorodą tarp galimų svetainių ir įgalintų svetainių:
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.orgDabar 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.