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 Nginx már telepítve van a számítógépére
- A domainhez konfigurált kiszolgálóblokk
- Sudo jogosultságokkal rendelkező felhasználó
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:
- CSR: önjelölt-nginx.katódsugárcső a / etc / ssl / cert / könyvtár
- Kulcs: önjelölt-nginx.kulcs ban,-ben / etc / ssl / privát könyvtár
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 20482. 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.konfA 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.konfAdja 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:
szerverhallgat 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.orgMost módosítsa a meglévőt szerver blokkolja, hogy így nézzen ki:
szerverhallgatni 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.
szerverhallgat 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áslistaA 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átAz alábbi paranccsal ellenőrizheti, hogy a profil engedélyezett-e a tűzfalban:
$ sudo ufw állapot5. 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 -tLátnia kell az alábbi kimenetet.
Most hozza létre a szimbolikus kapcsolatot az elérhető és az engedélyezett helyek között:
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ájlt6. 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.orgMost 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.