Nginx

Postavljanje Nginx SSL-a u Linuxu

Postavljanje Nginx SSL-a u Linuxu

SSL (označava sloj sigurne utičnice) mrežni je protokol koji čini promet između poslužitelja i klijenta sigurnim šifriranjem. Poslužitelj i klijenti sigurno prenose promet bez rizika da komunikacija bude protumačena od strane trećih strana. Također pomaže klijentu da provjeri identitet web mjesta s kojim komunicira.

U ovom ćemo postu opisati kako postaviti SSL za Nginx. Pokazat ćemo postupak pomoću samopotpisanog certifikata. Samopotpisani certifikat samo šifrira vezu, ali ne potvrđuje identitet vašeg poslužitelja. Stoga ga treba koristiti samo za testiranje okruženja ili za interne LAN usluge. Za proizvodno okruženje bolje je koristiti certifikate potpisane od strane CA (tijelo za izdavanje certifikata).

Preduvjeti

Za ovaj post trebali biste imati sljedeće preduvjete:

Ovdje je obavljen postupak koji je ovdje objašnjen Debian 10 (Buster) mašina.

Korak 1: Izrada samopotpisanog certifikata

Naš prvi korak bit će generiranje samopotpisanog certifikata. U Terminalu izdajte naredbu za generiranje CSR-a (zahtjev za potpisivanje certifikata) i ključ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

Od vas će se zatražiti da navedete neke podatke kao što su naziv vaše države, države, mjesta, uobičajeni naziv (vaše ime domene ili IP adresa) i adresa e-pošte.

U gornjoj naredbi OpenSSL će stvoriti sljedeće dvije datoteke:

Sada stvorite dhparam.pem datoteka pomoću naredbe u nastavku:

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

Korak 2: Konfiguriranje Nginxa za upotrebu SSL-a

U prethodnom smo koraku stvorili CSR i ključ. U ovom ćemo koraku konfigurirati Nginx da koristi SSL. Za to ćemo stvoriti isječak konfiguracije i dodati informacije o našim datotekama SSL certifikata i lokacijama ključeva.

Izdajte donju naredbu u Terminalu da biste stvorili novi konfiguracijski isječak samopotpisani.conf datoteka u / etc / nginx / snippets.

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

U datoteku dodajte sljedeće retke:

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

The ssl_certificate postavljeno je na samopotpisani-nginx.crt (datoteka certifikata) dok ssl_certificate_key postavljeno je na samopotpisani-nginx.ključ (datoteka ključa).

Spremite i zatvorite samopotpisani.konf datoteka.

Sada ćemo stvoriti još jednu datoteku isječka ssl-parami.konf i konfigurirajte neke osnovne SSL postavke. U Terminalu izdajte naredbu za uređivanje datoteke ssl-parami.konf datoteka:

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

U datoteku dodajte sljedeći sadržaj:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers uključen;
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 podijeljeno: SSL: 10m;
isključene ssl_session_tickets;
# ssl_stapling on;
# ssl_stapling_verify na;
razrješivač 8.8.8.8 8.8.4.4 valjana = 300s;
razmjerno_vreme isteka 5s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Zaštita "1; mode = block";

Kako ne koristimo certifikat potpisan od CA, onemogućili smo SSL klamanje. Ako koristite certifikat potpisan od CA, uklonite komentar iz ssl_stapling ulazak.

Korak 3: Konfiguriranje Nginxa za upotrebu SSL-a

Sada ćemo otvoriti datoteku za konfiguraciju bloka Nginx poslužitelja da napravimo neke konfiguracije.  U ovom ćemo koraku pretpostaviti da ste već postavili blok poslužitelja, koji će biti sličan ovom:

poslužitelj
slušati 80;
poslušajte [::]: 80;
root / var / www / test.org / html;
indeksni indeks.html indeks.htm indeks.nginx-debian.html;
test_ime_poslužitelja.org www.test.org;
lokacija /
try_files $ uri $ uri / = 404;

Da biste otvorili datoteku za konfiguraciju bloka Nginx poslužitelja, upotrijebite naredbu u nastavku:

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

Sada izmijenite postojeće poslužitelju blok kako bi izgledao ovako:

poslužitelj
slušajte 443 ssl;
poslušajte [::]: 443 ssl;
uključuju isječke / samopotpisane.conf;
uključuju isječke / ssl-paramese.conf;
root / var / www / test.org / html;
indeksni indeks.html indeks.htm indeks.nginx-debian.html;
test_ime_poslužitelja.org www.test.org;

U gornje konfiguracije dodali smo i SSL isječke samopotpisani.konf i ssl-parami.konf koje smo ranije konfigurirali.

Zatim dodajte a drugi poslužitelj blok.

poslužitelj
slušati 80;
poslušajte [::]: 80;
test_ime_poslužitelja.org www.test.org;
vrati 302 https: // $ server_name $ request_uri;

U gornjoj konfiguraciji, povratak 302 preusmjerava HTTP na HTTPS.

Bilješka: Obavezno zamijenite test.org s vlastitim imenom domene. Sada spremite i zatvorite datoteku.

Korak 4: Omogućite SSL promet kroz vatrozid

Ako je na vašem sustavu omogućen vatrozid, morat ćete omogućiti SSL promet kroz njega.  Nginx vam nudi tri različita profila s ufw. Možete ih pogledati pomoću naredbe u nastavku u Terminalu:

$ sudo ufw popis aplikacija

Vidjet ćete sljedeći izlaz s tri profila za Nginx promet.

Morat ćete dopustiti profil “Nginx Full” u vatrozidu. Da biste to učinili, upotrijebite donju naredbu:

$ sudo ufw dopustiti 'Nginx Full'

Da biste provjerili je li profil dopušten u vatrozidu, upotrijebite donju naredbu:

$ sudo ufw status

Korak 5: Testirajte NGINX konfiguracijsku datoteku

Sada testirajte konfiguracijsku datoteku Nginx pomoću naredbe u nastavku u Terminalu:

$ sudo nginx -t

Trebali biste vidjeti donji izlaz.


Sada stvorite simboličku vezu između dostupnih i omogućenih web lokacija:

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

Zatim ponovo pokrenite uslugu Nginx da biste primijenili promjene konfiguracije. Za to upotrijebite donju naredbu:

$ sudo systemctl ponovno pokrenite nginx

Korak 6: Testirajte SSL

Sada da biste testirali SSL, idite na sljedeću adresu:

https: // domena ili IP adresa

Kako smo postavili samopotpisani certifikat, vidjet ćemo upozorenje da veza nije sigurna. Sljedeća se stranica pojavljuje kada se koristi preglednik Mozilla Firefox.

Pritisnite Napredna dugme.

Klik Dodaj iznimku.

Zatim kliknite Potvrdite sigurnosnu iznimku.

Sada ćete vidjeti svoju HTTPS stranicu, ali sa znakom upozorenja (zaključajte se žutim znakom upozorenja) o sigurnosti vašeg web mjesta.

Također, provjerite radi li preusmjeravanje ispravno pristupanjem vašoj domeni ili IP adresi pomoću http.

http: // domena ili IP adresa

Ako vaša web lokacija automatski preusmjerava na HTTPS, to znači da je preusmjeravanje ispravno funkcioniralo. Da biste trajno konfigurirali preusmjeravanje, uredite datoteku za konfiguraciju bloka poslužitelja koristeći donju naredbu u terminalu:

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

Sada promijenite povrat 302 vratiti 301 u datoteku, a zatim je spremite i zatvorite.

Tako možete postaviti SSL za Nginx u sustavu Debian 10. Postavili smo samopotpisanu potvrdu za demonstraciju. Ako ste u proizvodnom okruženju, uvijek potražite CA certifikat.

Zamijenite svoje tipke miša različito za različiti softver pomoću X-Mouse Button Control
Možda vam treba alat koji bi mogao promijeniti kontrolu miša sa svakom aplikacijom koju koristite. Ako je to slučaj, možete isprobati aplikaciju pod n...
Microsoft Sculpt Touch bežični miš pregled
Nedavno sam čitao o Microsoft Sculpt Touch bežični miš i odlučio ga kupiti. Nakon što sam ga neko vrijeme koristio, odlučio sam s njim podijeliti svoj...
Trackpad i pokazivač miša na ekranu AppyMouse za Windows tablete
Korisnicima tableta često nedostaje pokazivač miša, posebno kada su navični koristiti prijenosna računala. Pametni telefoni i tableti osjetljivi na do...