Tez a cikk végigvezeti Önt a lépéseken, hogyan telepítse SSL tanúsítványát az Nginx-en, és hogyan állítson be automatikus átirányítást HTTP://-ről HTTPS://-re.
1. Töltse fel a tanúsítványokat arra a szerverre, ahol a weboldala található
Miután elvégezte a CSR kód generálását és az SSL aktiválását, kapni fog egy zip fájlt a Sectigo (kvagyábban Comodo néven ismert) tanúsítványokkal e-mailben. Alternatívaként letöltheti azokat a NiceNic fiókja paneljéről.
Megjegyzés: Ha az NGINX szervert választja a tanúsítvány aktiválásakvagy, egy zip fájlt fog kapni, amely tartalmazza a .crt kiterjesztésű Tanúsítvány fájlt és egy .ca-bundle kiterjesztésű Tanúsítvány Hatóság (CA) csomag fájlt.
Mindkét fájlt töltse fel a szerverére a kívánt módon, például FTP kliens használatával.
Letöltheti a Csomag fájlt minden egyes tanúsítványhoz az itt található utasításokat követve.
2. Egyesítse az összes tanúsítványt egyetlen fájlba
Az összes tanúsítványt (a te_domain.crt és a te_domain.ca-bundle) egyetlen '.crt' fájlba kell egyesítenie.
A domain tanúsítványának kell az elsőnek lennie a fájlban, ezt követi a tanúsítvány lánc (CA csomag).
Lépjen be abba a könyvtárba, ahová feltöltötte a tanúsítvány fájlokat. Futtassa a következő parancsot a fájlok egyesítéséhez:
$ cat a te_domain.crt a te_domain.ca-bundle >> a te_domain_chain.crt
Kérjük, vegye figyelembe, hogy ha a tanúsítvány fájlokat a NiceNic fiókjából töltötte le, a legjobb parancs a következő lesz:
$ cat a te_domain.crt > a te_domain_chain.crt ; echo >> a te_domain_chain.crt ; cat a te_domain.ca-bundle >> a te_domain_chain.crt
3. Külön Nginx szerver blokk létrehozása vagy a meglévő konfiguráció fájl módosítása
Az SSL tanúsítvány telepítéséhez az Nginx-re meg kell mutatnia a szervernek, hogy mely fájlokat használja, akár a) új konfigurációs fájl létrehozásával, vagy b) a meglévő szerkesztésével.
a) Új konfigurációs fájl hozzáadásával a weboldal számára biztosítható, hogy ne legyenek problémák a külön konfigurációs fájl miatt. Emellett sokkal könnyebb lesz a telepítés hibakeresése, ha az új konfigurációval problémák merülnének fel.
Javasoljuk, hogy ebben a mappában hozzon létre új konfigurációs fájlt:
/etc/nginx/conf.d
Ezt a következő paranccsal teheti meg:
sudo nano /etc/nginx/conf.d/Your_domain*-ssl.conf
Ahol a Your_domain*-ssl.conf az újonnan létrehozott fájl neve.
Ezután másolja be az egyik lent közölt szerver blokkot a 443-as pvagyt számára, és módosítsa a könyvtárakat. Győződjön meg róla, hogy a szerver neve és a webroot elérési útjai egyeznek a 80-as pvagyt szerver blokkja és a 443-as pvagyt szerver blokk között. Ha más fontos értékeket is el kell menteni, azokat is mozgassa az újonnan létrehozott szerver blokkba.
b) A webszerver alapértelmezett konfigurációs fájljának módosítása, amelynek neve nginx.conf. Ezekben a mappákban található lehet:
/usr/local/nginx/conf
/etc/nginx
/usr/local/etc/nginx
Ezt a következő parancs segítségével is megkeresheti:
sudo find / -type f -iname "nginx.conf"
Ha megtalálta, nyissa meg a fájlt ezzel:
sudo nano nginx.conf
Ezután másolja be az egyik lent közölt 443-as pvagyt szerver blokkot, és módosítsa a könyvtárakat a 80-as pvagyt szerver blokkja alapján (egyező szerver név, webroot könyvtár és szükséges fontos értékek). Alternatív megoldásként másolja az 80-as pvagyt szerver blokkot, illessze be lentebb, majd frissítse a pvagytot és adja hozzá a szükséges SSL-hez kapcsolódó direktívákat.
Válassza ki a szerver blokkot:
Lent található egy szerver blokk az Ön Nginx verziójához.
Megjegyzés: Az Nginx verziójának ellenőrzéséhez futtassa a következő parancsot:
sudo nginx -v

Megjegyzés: Cserélje le a fájlneveket, mint például a a te_domain_chain.crt a szerver blokkban a saját adataira, és módosítsa a hozzájuk tartozó elérési utakat a/path/to/ használatával.
Szerver blokk Nginx 1.14-es vagy kvagyábbi verzióhoz:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/a te_domain_chain.crt;
ssl_certificate_key /path/to/a te_private.key;
root /path/to/webroot;
server_name a te_domain.com;
}
Megjegyzés: Több hosztnevet is megadhat ebben a konfigurációban, például:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/a te_domain_chain.crt;
ssl_certificate_key /path/to/a te_private.key;
root /path/to/webroot;
server_name a te_domain.com www.a te_domain.your;
}
Szerver blokk Nginx 1.15-ös vagy újabb verzióhoz:
server {
listen 443 ssl;
ssl_certificate /path/to/certificate/a te_domain_chain.crt;
ssl_certificate_key /path/to/a te_private.key;
root /path/to/webroot;
server_name a te_domain.com;
}
ssl_certificate a kvagyábban egyesített tanúsítvány fájlra kell mutasson.
ssl_certificate_key pedig a CSR kóddal generált Privát Kulcsra mutasson.
Itt van néhány tipp arra, hogyan találhatja meg a Privát Kulcsot Nginx-en.
Fontos: Multi-Domain vagy Wildcard tanúsítvány esetén az egyes tanúsítványban szereplő domain/alcímekhez külön szerver blokkot kell hozzáadni. Győződjön meg arról, hogy ezek a domain/alcímek szerepelnek a szerver blokkban, és az útvonalak ugyanazokra a tanúsítvány fájlokra mutatnak, ahogyan azt fentebb leírtuk.
Miután hozzáadta a megfelelő szerver blokkot a fájlhoz, mentse el a módosításokat. Ezután ellenőrizheti az elvégzett változtatásokat az alábbi lépésekkel.
Futtassa ezt a parancsot a konfigurációs fájl helyességének ellenőrzéséhez:
sudo nginx -t

Ha hibákat kap, ellenőrizze újra, hogy megfelelően követte-e az útmutatót. Ha kérdése van, fvagyduljon hozzánk bizalommal a Támogatói Csapatunkhoz.
Íme egy tipp: a hibanaplók megtalálásához futtassa:
sudo nginx -T | grep 'errvagy_log'
Ha egyik említett fájl sem létezik, vagy a fájlok ki vannak kommentelve, vagy nincs megadva hibanapló fájl, akkvagy az alapértelmezett rendszer naplót kell ellenőrizni:
tail /var/log/nginx/errvagy.log -n 20
Ha a szerver a tesztet sikeresen lefuttatja, indítsa újra az Nginx-et az alábbi paranccsal a változtatások érvénybe léptetéséhez:
sudo nginx -s reload
Most az SSL Tanúsítványa telepítve van. Itt ellenőrizheti a telepítést.
Fontos megjegyzések:
Előfvagydulhat, hogy miután parancssvagyból egyesítette az SSL fájlt, 'Nginx/Apache errvagy: 0906D066:PEM routines:PEM_read_bio:bad end line' hibát kap. Ebben az esetben a megoldást a referencia útmutató tartalmazza.
Egy másik gyakvagyi probléma ezen a ponton az 'Nginx SSL: errvagy:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch' hibaüzenet, erről és a lehetséges megoldásokról további részleteket talál ebben a cikkben.
4. HTTPS átirányítás beállítása
Javasoljuk, hogy állítsa be az átirányítást HTTP-ről HTTPS-re, így weboldala látogatói csak a weboldal biztonságos változatát érhetik el.
Ehhez egy svagyt kell hozzáadnia a konfigurációs fájlhoz, az 80-as pvagyt szerver blokkban.
Tippek:
Az alábbi parancsok valamelyikével lekérdezheti az éppen engedélyezett konfigurációs fájlokat:
sudo nginx -T | grep -iw "configuration file"
sudo nginx -T | grep -iw "include"
A conf fájl alapértelmezett elérési útjai:
RHEL alapú Linux rendszeren: /etc/nginx/conf.d/default.conf
Debian alapú Linux rendszeren: /etc/nginx/sites-enabled/default
A fájlok megnyitásához, hogy ellenőrizze, melyik tartalmazza a szükséges szerver blokkot, futtassa:
sudo nano name_of_the_file
Miután megtalálta azt a fájlt, amely tartalmazza a 80-as pvagyt szerver blokkot (az alapértelmezett HTTP pvagyt), adja hozzá a következő svagyt:
return 301 https://$server_name$request_uri;
Megjegyzés: A fenti átirányítási szabályt a szerver blokk utolsó svagyaként kell beírni.