Nginx

Namestitev Nginx SSL v Linuxu

Namestitev Nginx SSL v Linuxu

SSL (pomeni varno vtičnico) je spletni protokol, ki s šifriranjem zagotavlja promet med strežnikom in odjemalcem. Strežnik in odjemalci varno prenašajo promet brez nevarnosti, da bi ga komunikacija razlagala s strani tretjih oseb. Stranki pomaga tudi pri preverjanju identitete spletnega mesta, s katerim komunicira.

V tem prispevku bomo opisali, kako nastaviti SSL za Nginx. Postopek bomo prikazali s samopodpisanim potrdilom. Samopodpisano potrdilo samo šifrira povezavo, vendar ne potrdi identitete vašega strežnika. Zato ga je treba uporabljati samo za preskušanje okolij ali za notranje storitve LAN. Za produkcijsko okolje je bolje uporabiti potrdila, ki jih je podpisal CA (overitelj).

Predpogoji

Za to objavo bi morali imeti naslednje predpogoje:

Tu razloženi postopek je bil izveden dne Debian 10 (Buster) stroj.

1. korak: Ustvarjanje samopodpisanega potrdila

Naš prvi korak bo ustvariti samopodpisano potrdilo. V terminalu izdajte spodnji ukaz, da ustvarite CSR (zahteva za podpis potrdila) in ključ:

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

Pozvani boste, da navedete nekatere podatke, kot so ime države, država, kraj, splošno ime (vaše ime domene ali naslov IP) in e-poštni naslov.

V zgornjem ukazu bo OpenSSL ustvaril naslednji dve datoteki:

Zdaj ustvarite dhparam.datoteka pem z uporabo spodnjega ukaza:

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

2. korak: Konfiguriranje Nginxa za uporabo SSL

V prejšnjem koraku smo ustvarili CSR in ključ. V tem koraku bomo Nginx konfigurirali za uporabo SSL. V ta namen bomo ustvarili konfiguracijski delček in dodali informacije o datotekah potrdil SSL in lokacijah ključev.

V terminalu izdajte spodnji ukaz, da ustvarite nov konfiguracijski delček samopodpis.conf v / etc / nginx / snippets.

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

V datoteko dodajte naslednje vrstice:

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

The ssl_certificate je nastavljeno na selfsigned-nginx.crt (datoteka potrdila), medtem ko ssl_certificate_key je nastavljeno na selfsigned-nginx.tipko (ključna datoteka).

Shranite in zaprite samopodpis.conf mapa.

Zdaj bomo ustvarili še eno datoteko delčka ssl-params.conf in konfigurirajte nekaj osnovnih nastavitev SSL. V terminalu izdajte spodnji ukaz za urejanje datoteke ssl-params.conf mapa:

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

V datoteko dodajte naslednjo vsebino:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers vklopljen;
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: ECDHES-RSA-A
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache v skupni rabi: SSL: 10m;
ssl_session_tickets off;
# ssl_stapling on;
# ssl_stapling_verify on;
reševalec 8.8.8.8 8.8.4.4 veljavne = 300s;
razreševalnik_časov 5 s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Zaščita "1; mode = block";

Ker ne uporabljamo potrdila s podpisom CA, smo onemogočili spenjanje SSL. Če uporabljate potrdilo s podpisom CA, počistite polje ssl_stapling vstop.

3. korak: Konfiguriranje Nginxa za uporabo SSL

Zdaj bomo odprli konfiguracijsko datoteko bloka strežnika Nginx, da naredimo nekaj konfiguracij.  V tem koraku bomo domnevali, da ste že nastavili strežniški blok, ki bo podoben temu:

strežnik
poslušaj 80;
poslušaj [::]: 80;
root / var / www / test.org / html;
indeksni indeks.indeks html.indeks htm.nginx-debian.html;
test_ime_strežnika.org www.preskus.org;
lokacija /
try_files $ uri $ uri / = 404;

Če želite odpreti konfiguracijsko datoteko bloka strežnika Nginx, uporabite spodnji ukaz:

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

Zdaj spremenite obstoječe strežnik blok, da bo videti tako:

strežnik
poslušaj 443 ssl;
poslušaj [::]: 443 ssl;
vključujejo delčke / samopodpisane.conf;
vključite odrezke / ssl-params.conf;
root / var / www / test.org / html;
indeksni indeks.indeks html.indeks htm.nginx-debian.html;
test_ime_strežnika.org www.preskus.org;

V zgornje konfiguracije smo dodali tudi odrezke SSL samopodpis.conf in ssl-params.conf ki smo jih že nastavili.

Nato dodajte a drugi strežnik blok.

strežnik
poslušaj 80;
poslušaj [::]: 80;
test_ime_strežnika.org www.preskus.org;
vrni 302 https: // $ server_name $ request_uri;

V zgornji konfiguraciji, vrnitev 302 preusmeri HTTP na HTTPS.

Opomba: Prepričajte se, da ste zamenjali test.org z lastnim domenskim imenom. Zdaj datoteko shranite in zaprite.

4. korak: Dovolite promet SSL skozi požarni zid

Če je v vašem sistemu omogočen požarni zid, boste morali dovoliti SSL promet prek njega.  Nginx vam ponuja tri različne profile z ufw. Ogledate si jih lahko s spodnjim ukazom v terminalu:

Seznam aplikacij $ sudo ufw

Videli boste naslednji izhod s tremi profili za promet Nginx.

V požarnem zidu boste morali dovoliti profil »Nginx Full«. Če želite to narediti, uporabite spodnji ukaz:

$ sudo ufw dovoli 'Nginx Full'

Če želite preveriti, ali je profil dovoljen v požarnem zidu, uporabite spodnji ukaz:

$ sudo ufw status

5. korak: Preizkusite konfiguracijsko datoteko NGINX

Zdaj preizkusite konfiguracijsko datoteko Nginx z uporabo spodnjega ukaza v terminalu:

$ sudo nginx -t

Morali bi videti spodnji izhod.


Zdaj ustvarite simbolično povezavo med spletnimi mesti, ki so na voljo in omogočena:

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

Nato znova zaženite storitev Nginx, da uveljavite spremembe konfiguracije. Za to uporabite spodnji ukaz:

$ sudo systemctl znova zaženite nginx

6. korak: Preizkusite SSL

Zdaj, da preizkusite SSL, pojdite na naslednji naslov:

https: // naslov domene ali IP

Ko smo nastavili samopodpisano potrdilo, bomo videli opozorilo, da povezava ni varna. Naslednja stran se prikaže pri uporabi brskalnika Mozilla Firefox.

Kliknite Napredno gumb.

Kliknite Dodaj izjemo.

Nato kliknite Potrdite varnostno izjemo.

Zdaj boste videli spletno mesto HTTPS, vendar z opozorilnim znakom (zaklepanje z rumenim opozorilnim znakom) o varnosti vašega spletnega mesta.

Preverite tudi, ali preusmeritev deluje pravilno, tako da dostopite do svoje domene ali naslova IP s pomočjo http.

http: // naslov domene ali IP

Če vaše spletno mesto samodejno preusmeri na HTTPS, to pomeni, da je preusmeritev delovala pravilno. Če želite trajno konfigurirati preusmeritev, z uporabo spodnjega ukaza v terminalu uredite konfiguracijsko datoteko strežniškega bloka:

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

Zdaj spremenite donos 302 vrniti 301 v datoteko, nato pa jo shranite in zaprite.

Tako lahko v sistemu Debian 10 nastavite SSL za Nginx. Pripravili smo samopodpisano potrdilo za predstavitev. Če ste v proizvodnem okolju, vedno poiščite potrdilo CA.

Kazalec skoči ali se naključno premika med tipkanjem v sistemu Windows 10
Če ugotovite, da kazalec miške med tipkanjem v prenosnem računalniku ali računalniku Windows samodejno, naključno preskakuje ali se premika sam, vam l...
Kako obrniti smer drsenja miške in sledilne ploščice v sistemu Windows 10
Miška in Sledilna ploščicaRačunalništvo ni samo enostavno, ampak bolj učinkovito in manj zamudno. Življenja brez teh naprav si ne moremo predstavljati...
Kako spremeniti miškin kazalec in velikost, barvo in shemo kazalca v sistemu Windows 10
Kazalec miške in kazalec v operacijskem sistemu Windows 10 sta zelo pomembna vidika operacijskega sistema. To lahko rečemo tudi za druge operacijske s...