Nginx

Nginx SSL beállítása Linux alatt

Nginx SSL beállítása Linux alatt

Az SSL (a biztonságos socket réteget jelenti) egy webes protokoll, amely titkosításával biztonságossá teszi a szerver és az ügyfél közötti forgalmat. A szerver és az ügyfelek biztonságosan továbbítják a forgalmat, anélkül, hogy harmadik fél értelmezné a kommunikációt. Ez segít az ügyfélnek abban is, hogy ellenőrizze annak a webhelynek az identitását, amellyel kommunikál.

Ebben a bejegyzésben leírjuk, hogyan állítsuk be az SSL-t az Nginx számára. Az eljárást az önaláírt tanúsítvánnyal mutatjuk be. Az önaláírt tanúsítvány csak titkosítja a kapcsolatot, de nem ellenőrzi a szerver identitását. Ezért csak környezetek teszteléséhez vagy belső LAN-szolgáltatásokhoz használható. A termelési környezet szempontjából jobb, ha a CA (tanúsító hatóság) által aláírt tanúsítványokat használja.

Előfeltételek

Ehhez a bejegyzéshez a következő előfeltételek szükségesek:

Az itt ismertetett eljárást végrehajtották Debian 10 (Buster) gép.

1. lépés: Saját aláírású tanúsítvány létrehozása

Első lépésünk egy önaláírt tanúsítvány létrehozása lesz. Adja ki az alábbi parancsot a Terminálban CSR (Certificate Signing Request) és egy kulcs előállításához:

$ sudo openssl req -x509 -node -days 365 -newkey rsa: 2048 -keyout / etc / ssl / private / selfsigned-nginx.-out / etc / ssl / certs / selfsigned-nginx kulcs.katódsugárcső

A rendszer kéri, hogy adjon meg néhány információt, például országnevét, államát, helységét, közönséges nevét (domainnevét vagy IP-címét) és e-mail címét.

A fenti parancsban az OpenSSL a következő két fájlt hozza létre:

Most hozza létre a dhparam.pem fájl az alábbi paranccsal:

A $ sudo megnyitja a dhparam -out / etc / ssl / certs / dhparam fájlt.pem 2048

2. lépés: Az Nginx beállítása az SSL használatára

Az előző lépésben létrehoztuk a CSR-t és a kulcsot. Ebben a lépésben konfiguráljuk az Nginx-et az SSL használatára. Ehhez létrehozunk egy konfigurációs kódrészletet, és információkat adunk az SSL tanúsítványfájljainkról és a legfontosabb helyekről.

Új konfigurációs kódrészlet létrehozásához adja ki az alábbi parancsot a Terminálban saját aláírással.conf fájl ban,-ben / etc / nginx / snippet.

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

A fájlban adja hozzá a következő sorokat:

ssl_certificate / etc / ssl / certs / selfsigned-nginx.katódsugárcső;
ssl_certificate_key / etc / ssl / private / selfsigned-nginx.kulcs;

A ssl_certificate értékre van állítva önjelölt-nginx.katódsugárcső (tanúsítványfájl), míg a ssl_certificate_key értékre van állítva önjelölt-nginx.kulcs (kulcsfájl).

Mentse és zárja be a saját aláírással.konf fájl.

Most létrehozunk egy újabb részletet ssl-params.konf és konfiguráljon néhány alapvető SSL-beállítást. A. Szerkesztéséhez adja ki az alábbi parancsot a Terminálban ssl-params.konf fájl:

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

Adja hozzá a következő tartalmat a fájlhoz:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers be;
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: ECDA4;
ssl_ecdh_görbe secp384r1;
ssl_session_timeout 10m;
ssl_session_cache megosztva: SSL: 10m;
ssl_session_tickets off;
# ssl_stapling on;
# ssl_stapling_verify on;
8. megoldó.8.8.8 8.8.4.4 érvényes = 300s;
resolver_timeout 5s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mód = blokk";

Mivel nem használunk CA által aláírt tanúsítványt, ezért letiltottuk az SSL tűzését. Ha CA által aláírt tanúsítványt használ, törölje a megjegyzést ssl_stapling belépés.

3. lépés: Az Nginx beállítása az SSL használatára

Most megnyitjuk az Nginx szerverblokk konfigurációs fájlt néhány konfiguráció elvégzéséhez.  Ebben a lépésben feltételezzük, hogy már beállította a kiszolgálóblokkot, amely hasonló lesz ehhez:

szerver
hallgat 80;
hallgat [::]: 80;
root / var / www / test.org / html;
index index.html index.htm index.nginx-debian.html;
server_name teszt.org www.teszt.org;
hely /
try_files $ uri $ uri / = 404;

Az Nginx kiszolgálóblokk konfigurációs fájljának megnyitásához használja az alábbi parancsot:

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

Most módosítsa a meglévőt szerver blokkolja, hogy így nézzen ki:

szerver
hallgatni 443 ssl;
hallgat [::]: 443 ssl;
tartalmaznak részleteket / saját aláírásokat.konf;
tartalmaznak részleteket / ssl-parameket.konf;
root / var / www / test.org / html;
index index.html index.htm index.nginx-debian.html;
server_name teszt.org www.teszt.org;

A fenti konfigurációkban felvettük az SSL-kivonatokat is saját aláírással.konf és ssl-params.konf amit korábban konfiguráltunk.

Ezután adjon hozzá egy második szerver Blokk.

szerver
hallgat 80;
hallgat [::]: 80;
server_name teszt.org www.teszt.org;
return 302 https: // $ szerver_neve $ request_uri;

A fenti konfigurációban, visszatérés 302 átirányítja a HTTP-t HTTPS-re.

jegyzet: Ne felejtse el kicserélni a tesztet.org saját domain neveddel. Most mentse és zárja be a fájlt.

4. lépés: Engedélyezze az SSL forgalmat a tűzfalon keresztül

Ha a tűzfal engedélyezve van a rendszerén, akkor engedélyeznie kell rajta az SSL forgalmat.  Az Nginx három különböző profilt biztosít az ufw-vel. Megtekintheti őket a Terminal alábbi parancsával:

$ sudo ufw alkalmazáslista

A következő kimenetet fogja látni, három profillal az Nginx forgalomhoz.

Engedélyeznie kell a „Nginx Full” profilt a tűzfalban. Ehhez használja az alábbi parancsot:

$ sudo ufw engedélyezi az 'Nginx Full' használatát

Az alábbi paranccsal ellenőrizheti, hogy a profil engedélyezett-e a tűzfalban:

$ sudo ufw állapot

5. lépés: Tesztelje az NGINX konfigurációs fájlt

Most tesztelje az Nginx konfigurációs fájlt az alábbi paranccsal a Terminálban:

$ sudo nginx -t

Látnia kell az alábbi kimenetet.


Most hozza létre a szimbolikus kapcsolatot az elérhető és az engedélyezett helyek között:

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

Ezután indítsa újra az Nginx szolgáltatást a konfigurációs változások alkalmazásához. Ehhez használja az alábbi parancsot:

$ sudo systemctl indítsa újra az nginx fájlt

6. lépés: Tesztelje az SSL-t

Az SSL teszteléséhez keresse meg a következő címet:

https: // domain vagy IP cím

Mivel beállítottuk az önaláírt tanúsítványt, figyelmeztetést fogunk látni, hogy a kapcsolat nem biztonságos. A következő oldal jelenik meg a Mozilla Firefox böngésző használatakor.

Kattints a Fejlett gomb.

Kattintson a gombra Kivétel hozzáadása.

Ezután kattintson a gombra Erősítse meg a biztonsági kivételt.

Most látni fogja HTTPS-webhelyét, de figyelmeztető táblával (sárga figyelmeztető jellel zárva) a webhely biztonságáról.

Ezenkívül ellenőrizze, hogy az átirányítás megfelelően működik-e, ha a http használatával ér el domainjét vagy IP-címét.

http: // domain vagy IP cím

Ha a webhelye automatikusan átirányít a HTTPS-re, ez azt jelenti, hogy az átirányítás megfelelően működött. Az átirányítás végleges konfigurálásához szerkessze a kiszolgálóblokk konfigurációs fájlt a Terminál alábbi parancsával:

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

Most változtassa meg a hozamot 302 visszatérni 301 fájlba, majd mentse és zárja be.

Így állíthatja be az SSL-t az Nginx számára a Debian 10 rendszerben. Felállítottuk az önaláírt igazolást a bemutatásra. Ha éles környezetben van, mindig kérjen CA tanúsítványt.

Csata a Wesnoth bemutatóért
A Battle for Wesnoth az egyik legnépszerűbb nyílt forráskódú stratégiai játék, amelyet jelenleg játszhatsz. Ez a játék nem csak nagyon hosszú ideje fe...
0 A.D. Bemutató
A sok stratégiai játék közül 0 A.D. átfogó címként és nagyon mély, taktikus játékként képes kiemelkednie annak ellenére, hogy nyílt forráskódú. A játé...
Unity3D bemutató
Bevezetés a Unity 3D-be Az Unity 3D egy erőteljes játékfejlesztő motor. Ez több platformon keresztül lehetővé teszi játékok, mobil, webes, asztali és ...