Az SSL engedélyezése az NGINX rendszeren

Kép: Jack Wallen

A biztonságos socket réteg (SSL) szükségessé vált a webszerverek számára. Miért? Mivel a biztonságot a figyelem középpontjába kényszerítették, és minden vállalat szembesül azzal a ténnyel, hogy webszervereik biztonságosan kiszolgálják a tartalmat.

Adatközpont kötelező olvasása

  • 8 adatközpont-előrejelzés 2020-ra
  • 7 hálózati előrejelzés 2020-ra: Automatizálás, élszámolás, Wi-Fi 6, stb
  • A szerver virtualizációjának bevált módszerei és tippek a nem teendőkhöz
  • Kvantumszámítás: Hét igazságot kell tudnod

Ennek érdekében ki kell használnia az SSL-t. Ha véletlenül együttműködik az NGINX-rel, szerencséje van, mivel a folyamat teljesen lehetséges (bár kissé bonyolult).

Átnézem az SSL engedélyezésének lépéseit egy Ubuntu Server 18.04-en, az NGINX futtatásával. Ezt önaláírt tanúsítvánnyal demonstrálom, de sokkal jobb választás a hivatalos Tanúsító Hatóság (CA) igazolása. Valójában az önaláírt tanúsítványt csak eszközként kell használni a teszteléshez.

Amire szükséged van

Ehhez szüksége lesz az NGINX-re az Ubuntu Server 18.04 rendszeren futó, önaláírt tanúsítvánnyal a készen. Feltételezem, hogy az Ubuntu és az NGINX már működik és fut. Megismerjük az önaláírt tanúsítvány létrehozásának folyamatát.

Saját aláírású igazolás

Az első lépés az önaláírt tanúsítvány előállítása. Ehhez jelentkezzen be a kiszolgálóra, és adja ki a következő parancsot:

 sudo openssl req -x509 -csomópontok -napok 365 -új kulcs rsa: 2048 -kulcs /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt 

Néhány kérdést feltesznek Önre (például ország neve, állam, település stb.). A legfontosabb válasz a köznév. Erre a kérdésre válaszoljon a szerver IP-címével (A ábra ).

A ábra

A köznév konfigurálása IP-címmel.


Amint a parancs befejeződik, a szükséges fájlok hozzáadódnak az / etc / ssl könyvtárhoz, és használatra készek.

Az NGINX konfigurálása

Most be kell állítanunk az NGINX-et az SSL használatához. Először hozzon létre egy új konfigurációs kódrészlet fájlt a következő paranccsal:

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

Az új fájlba illessze be a következő tartalmat:

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

Mentse és zárja be a fájlt.

Ezután hozzon létre egy második konfigurációs kódrészletet, amely az újonnan létrehozott SSL kulcsra és tanúsítványra mutat. Ehhez adja ki a parancsot:

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

Az új fájlba illessze be a következő tartalmat:

 ssl_protocols TLSv1.2; ssl_prefer_server_ciphers on; 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: ECDHEE4; ssl_ecdh_curve secp384r1; # Szükséges nginx> = 1.1.0 ssl_session_timeout 10m; ssl_session_cache megosztva: SSL: 10m; ssl_session_tickets ki; # Szükséges nginx> = 1.5.9 # ssl_stapling on; # Szükséges nginx> = 1.3.7 # ssl_stapling_verify on; # Szükséges nginx => 1.3.7 felbontó 8.8.8.8 8.8.4.4 érvényes = 300 s; resolver_timeout 5s; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode = block"; 

Mivel egy önaláírt tanúsítványt használunk, letiltjuk az SSL tűzés használatát (egy módszer az SSL tanúsítvány érvényességének gyors és biztonságos meghatározására). Ha nem önaláírt tanúsítványt használ, akkor távolítsa el a # szimbólumokat a két sor előtt. A feloldó sort megváltoztathatja a kívánt DNS-kiszolgálók tükrözéseként is. Mentse és zárja be a fájlt.

A dhparam.pem fájlt a következő paranccsal kell létrehoznunk:

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

A fenti parancs eltart egy ideig.

A következő lépés az NGINX konfigurálása, hogy tisztában legyen azzal, hogy SSL-t fogunk használni. Tegyük fel, hogy van egy kiszolgálóblokk, például a.com webhelyhez elérhető. Nyissa meg azt a szerverblokkot a következő paranccsal:

 sudo nano /etc/nginx/sites-avable/example.com 

A fájlban módosítsa, hogy tükrözze a következőket:

 szerver {figyelj 443 ssl; figyelj ::: 443 ssl; tartalmaznak kivonatokat / önaláírt.conf; tartalmaznak kivonatokat / ssl-params.conf; kiszolgálónév példa.com www.example.com; root /var/www/example.com/html; index index.html index.htm index.nginx-debian.html; } 

Az alábbiakban hozzáadunk egy új szerverblokkot (a HTTPS átirányítás végrehajtásához), így:

 szerver {figyel 80; figyelj ::: 80; kiszolgálónév példa.com www.example.com; visszatérés 302 https: // $ kiszolgáló_neve $ kérés_uri; } 

Végül össze kell kapcsolnunk a rendelkezésre álló helyekről a rendelkezésre álló helyekre a következő paranccsal:

 ln -s /etc/nginx/sites-avable/www.example.com / etc / nginx / site-enabled / 

Ellenőrizze a profilokat

Az ufw használatával ellenőrizhetjük új SSL-kompatibilis profiljainkat a következő paranccsal:

 sudo ufw alkalmazáslista 

Ennek világosan meg kell mutatnia, hogy az NGINX HTTPS engedélyezve van ( B ábra ).

B. ábra

Az NGINX HTTPS kész.


Indítsa újra az NGINX-et a következő paranccsal:

 sudo systemctl újraindítás nginx 

Most már képesnek kell lennie arra, hogy a böngészőt a https: // SERVER_IP (ahol a SERVER_IP a kiszolgáló IP-címe) felé mutatni, és figyelmeztetést (mivel önaláírt tanúsítványt használunk) figyelmeztetni a tanúsítvány biztonságára ( ábra C ).

C. ábra

A Firefox azt jelzi, hogy a webhely nem biztonságos.


Gratulálunk, most az SSL működik az NGINX-en. Az adatközpont webszerverei biztonságosabbak.

Adatközpont-trend hírlevél

A DevOps, a virtualizáció, a hibrid felhő, a tárolás és az operatív hatékonyság csak néhány adatközpont-témakör, amelyet kiemeltünk. Hétfőn és szerdán szállítjuk

Regisztrálj még ma

© Copyright 2021 | mobilegn.com