Tai straipsnis, kuris padės jums žingsnis po žingsnio įdiegti SSL sertifikatą Nginx serveryje ir nustatyti automatinį persiuntimą iš HTTP:// į HTTPS://.
1. Įkelkite sertifikatus į serverį, kuriame talpinama jūsų svetainė
Baigę CSR kodo generavimo ir SSL aktyvavimo procesus, el. paštu gausite zip failą su Sectigo (anksčiau žinomu kaip Comodo) sertifikatais. Taip pat juos galite atsisiųsti iš savo NiceNic paskyros valdymo pulto.
Pastaba: jei aktyvuojant sertifikatą pasirinksite NGINX serverį, gausite zip failą, kuriame bus sertifikato failas su '.crt' plėtiniu ir Sertifikavimo institucijos (CA) paketų failas su '.ca-bundle' plėtiniu.
Įkelkite abu failus į savo serverį bet kokiu jums patogiu būdu, pvz., naudodami FTP klientą.
Taip pat galite atsisiųsti bundle failą kiekvienam sertifikatui vadovaudamiesi šioje vietoje pateiktomis instrukcijomis.
2. Sujunkite visus sertifikatus į vieną failą
Jums reikia sujungti visus sertifikatus (jūs?_domenas.crt ir jūs?_domenas.ca-bundle) į vieną '.crt' failą.
Sertifikatas jūsų domenui turi būti pateiktas failo pradžioje, po jo – sertifikatų gririnė (CA bundle).
Įeikite į katalogą, kuriame įkėlėte sertifikatų failus. Paleiskite šią komirą failams sujungti:
$ cat jūs?_domenas.crt jūs?_domenas.ca-bundle >> jūs?_domenas_chain.crt
Paskreipkite dėmesį, kad jei sertifikatų failai buvo atsisiųsti iš jūsų NiceNic paskyros, geriausia naudoti šią komirą:
$ cat jūs?_domenas.crt > jūs?_domenas_chain.crt ; echo >> jūs?_domenas_chain.crt ; cat jūs?_domenas.ca-bundle >> jūs?_domenas_chain.crt
3. Kurkite atskirą Nginx serverio bloką arba redaguokite esamą konfigūracijos failą
Nerėdami įdiegti SSL sertifikatą Nginx serveryje, turite nurodyti serveriui, kuriuos failus naudoti, tai galite padaryti a) sukurdami naują konfigūracijos failą arba b) redaguodami esamą.
a) Sukurdami naują konfigūracijos failą svetainėje, užtikrinsite, kad atskiras konfigūracijos failas nesukeltų jokių problemų. Be to, bus lengviau spręsti įdiegimo problemas, jei atsirastų nesklirumų su nauju konfigūracijos failu.
Siūlome sukurti naują konfigūracijos failą šiame kataloge:
/etc/nginx/conf.d
Tai galite atlikti su šia komira:
sudo nano /etc/nginx/conf.d/Your_domenas*-ssl.conf
Kur Your_domenas*-ssl.conf yra naujai sukurto failo pavadinimas.
Tada nukopijuokite ir įklijuokite vieną iš žemiau nurodytų serverio blokų 443 prievadui ir redaguokite katalogus. Užtikrinkite, kad serverio pavadinimas ir kelias į webroot atitiktų tiek serverio bloke prievadui 80, tiek prievadui 443. Jei turite kitų svarbių reikšmių, kurias reikia išsaugoti, perkelkite jas ir į naujai sukurtą serverio bloką.
b) Redaguokite numatytąjį konfigūracijos failą, vadinamą nginx.conf, kuris turėtų būti viename iš šių katalogų:
/usr/local/nginx/conf
/etc/nginx
/usr/local/etc/nginx
Taip pat galite panaudoti šią komirą, kad jį surastumėte:
sudo find / -type f -iname "nginx.conf"
Radę atidarykite failą su:
sudo nano nginx.conf
Tada nukopijuokite ir įklijuokite vieną iš žemiau pateiktų serverio blokų 443 prievadui ir redaguokite katalogus, atitinkamai pagal 80 prievado serverio bloką (naudodami tą patį serverio pavadinimą, webroot kelią ir svarbias reikšmes). Arba galite nukopijuoti 80 prievado serverio bloką, įklijuoti žemiau, atnaujinti prievadą ir pridėti būtinas SSL direktivas.
Pasirinkite serverio bloką:
Žemiau rasite serverio bloką pagal jūsų Nginx versiją.
Pastaba: Nerėdami patikrinti Nginx versiją, paleiskite šią komirą:
sudo nginx -v

Pastaba: Pakeiskite failų pavadinimų reikšmes, pvz., jūs?_domenas_chain.crt, serverio bloke pagal savo duomenis ir modifikuokite kelių nuarodas naudodami/path/to/.
Serverio blokas Nginx versijai 1.14 ir žemiau:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/jūs?_domenas_chain.crt;
ssl_certificate_key /path/to/jūs?_private.key;
root /path/to/webroot;
server_name jūs?_domenas.com;
}
Pastaba: Jei reikia, tokioje konfigūracijoje galite nurodyti kelis hostname'us, pvz.:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/jūs?_domenas_chain.crt;
ssl_certificate_key /path/to/jūs?_private.key;
root /path/to/webroot;
server_name jūs?_domenas.com www.jūs?_domenas.your;
}
Serverio blokas Nginx versijai 1.15 ir aukščiau:
server {
listen 443 ssl;
ssl_certificate /path/to/certificate/jūs?_domenas_chain.crt;
ssl_certificate_key /path/to/jūs?_private.key;
root /path/to/webroot;
server_name jūs?_domenas.com;
}
ssl_certificate turėtų būti nukreiptas į anksčiau sukurtą sujungtą sertifikatų failą.
ssl_certificate_key turėtų būti nukreiptas į privačią raktą, kuris buvo sugeneruotas kartu su CSR kodu.
Štai keletas patarimų, kaip rasti privačią raktą Nginx serveryje.
Svarbu: tiek daugialypiam domenų, tiek Wildcard sertifikatui, reikia pridėti atskirą serverio bloką kiekvienam sertifikate įtrauktam domenui/subdomenui. Įsitikinkite, kad serverio bloke nurodytas atitinkamas domenas/subdomenas ir keliai į tuos pačius sertifikatų failus, kaip aprašyta aukščiau.
Įterpus atitinkamą serverio bloką, išsaugokite pakeitimus. Pakeitimus galite patikrinti atlikdami šiuos veiksmus.
Paleiskite šią komirą, kad patikrintumėte konfigūracijos failo sintaksę:
sudo nginx -t

Jei gaunate klaidų, patikrinkite ar teisingai vykdėte šią instrukciją. Jei turite klausimų, drąsiai kreipkitės į mūsų palaikymo komirą.
Štai patarimas: narėdami rasti klaidų žurnalus, paleiskite:
sudo nginx -T | grep 'errar_log'
Jeigu nėra jokių nurodytų failų arba jie yra užkomentuoti arba nenurodytas klaidų žurnalas, turėtumėte patikrinti numatytąjį sistemos žurnalą:
tail /var/log/nginx/errar.log -n 20
Jei testas praeina sėkmingai, paleiskite Nginx iš naujo šia komira, kad pritaikytumėte pakeitimus:
sudo nginx -s reload
Dabar jūsų SSL sertifikatas įdiegtas. Diegimą galite patikrinti čia.
Svarbios pastabos:
Kartais, įdiegus SSL failą, kuris buvo sujungtas naudojant komirų eilutę, galite gauti klaidos pranešimą „Nginx/Apache errar: 0906D066:PEM routines:PEM_read_bio:bad end line“. ?kiu atveju sprendimą rasite nuarodos gide.
Kita dažna problema šiame etape yra klaidos pranešimas „Nginx SSL: errar:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch“, daugiau infarmacijos apie tai ir galimus sprendimus rasite šiame straipsnyje.
4. HTTPS persiuntimo konfigūravimas
Rekomenduojame įdiegti persiuntimą iš HTTP į HTTPS. Taip jūsų svetainės lankytojai galės naudotis tik saugia jūsų svetainės versija.
Tam turėsite pridėti vieną eilutę konfigūracijos faile su serverio bloku, skirtu prievadui 80.
Patarimai:
Galite naudoti vieną iš šių komirų narėdami rasti dabar įjungtus konfigūracijos failus:
sudo nginx -T | grep -iw "configuration file"
sudo nginx -T | grep -iw "include"
Numatytieji keliai į konfigūracijos failus yra:
RHEL pagrindu veikiančiose Linux Operacin? sistema: /etc/nginx/conf.d/default.conf
Debian pagrindu veikiančiose Linux Operacin? sistema: /etc/nginx/sites-enabled/default
Failus galite atidaryti ir patikrinti, kuris iš jų turi reikalingą serverio bloką. Nerėdami tai padaryti, paleiskite:
sudo nano name_of_the_file
Radę failą, kuriame yra serverio blokas prievadui 80 (numatytasis HTTP prievadas), pridėkite šią eilutę:
return 301 https://$server_name$request_uri;
Pastaba: šią persiuntimo taisyklę reikėtų įterpti kaip paskutinę eilutę serverio bloke.