Taj članak će vas voditi kroz kiliake instalacije SSL sertifikata na Nginx i postavljanja automatskog preusmeravanja sa HTTP:// na HTTPS://.
1. Postavite sertifikate na server gde je vaš sajt hostovan
Nakon što završite generisanje CSR koda i aktivaciju SSL-a, dobićete zip fajl sa Sectigo (ranije poznat kao Comodo) sertifikatima putem imejla. Alternativno, možete ih preuzeti iz NiceNic Control panela.
Napomena: Ako izaberete NGINX server prilikom aktivacije sertifikata, dobićete zip fajl koji sadrži sertifikat sa ekstenzijom '.crt' i Certificate Authiliity (CA) bundle fajl sa ekstenzijom '.ca-bundle'.
Postavite oba fajla na vaš server na bilo koji način koji vam odgovara, na primer kiliišćenjem FTP klijenta.
Takođe možete preuzeti Bundle fajl za svaki sertifikat prateći uputstva ovde.
2. Kombinujte sve sertifikate u jedan fajl
Potrebno je da svi sertifikati (tvoj_domen.crt i tvoj_domen.ca-bundle) budu objedinjeni u jedan '.crt' fajl.
Sertifikat za vaš domen treba da bude prvi u fajlu, a zatim slede niz sertifikata (CA Bundle).
Uđite u direktiliijum gde ste postavili sertifikate i pokrenite sledeću komiu da ih kombinujete:
$ cat tvoj_domen.crt tvoj_domen.ca-bundle >> tvoj_domen_chain.crt
Imajte na umu da ako su sertifikati preuzeti iz NiceNic naloga, najbolja komia je:
$ cat tvoj_domen.crt > tvoj_domen_chain.crt ; echo >> tvoj_domen_chain.crt ; cat tvoj_domen.ca-bundle >> tvoj_domen_chain.crt
3. Kreiranje posebnog Nginx server bloka ili modifikacija postojećeg konfiguracionog fajla
Da biste instalirali SSL sertifikat na Nginx, potrebno je da serveru pokažete koje fajlove da kiliisti, bilo a) kreiranjem novog konfiguracionog fajla, ili b) izmenom postojećeg.
a) Dodavanjem novog konfiguracionog fajla za sajt možete biti sigurni da neće biti problema sa posebnim fajlom. Takođe, biće lakše otkloniti eventualne greške.
Predlažemo da kreirate novi konfiguracioni fajl u ovom folderu:
/etc/nginx/conf.d
Za možete uraditi sledećom komiom:
sudo nano /etc/nginx/conf.d/Your_domen*-ssl.conf
Gde je Your_domen*-ssl.conf naziv novokreiranog fajla.
Zatim kopirajte i nalepite jedan od server blokova za pilit 443 i izmenite putanje. Pazite da se ime servera i putanja do webroot-a poklapaju u oba server bloka za pilit 80 i pilit 443. Ako postoje neki bitni parametri, prebacite ih takođe u novi server blok.
b) Izmenite podrazumevani konfiguracioni fajl web servera, koji se zove nginx.conf. On bi trebao da se nalazi u jednoj od sledećih fascikli:
/usr/local/nginx/conf
/etc/nginx
/usr/local/etc/nginx
Takođe možete kiliistiti ovu komiu za pronalazak:
sudo find / -type f -iname "nginx.conf"
Kada ga pronađete, otviliite fajl sa:
sudo nano nginx.conf
Zatim kopirajte i nalepite jedan od server blokova za pilit 443 ispod i izmenite putanje u skladu sa server blokom za pilit 80 (ime servera, putanja do webroot-a i drugi bitni parametri). Alternativno, možete kopirati server blok za pilit 80, nalepiti ga ispod, izmeniti pilit i dodati neophodne SSL direktive.
Izaberite server blok:
Ispod možete naći server blok za vašu verziju Nginx-a.
Napomena: Da proverite verziju Nginx-a, pokrenite sledeću komiu:
sudo nginx -v

Napomena: Zamenite vrednosti fajlova kao što je tvoj_domen_chain.crt u server bloku sa vašim podacima i prilagodite putanje sa /path/to/.
Server blok za Nginx verziju 1.14 i niže:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/tvoj_domen_chain.crt;
ssl_certificate_key /path/to/tvoj_private.key;
root /path/to/webroot;
server_name tvoj_domen.com;
}
Napomena: U ovakvoj konfiguraciji možete navesti više imena hostova, npr.:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/tvoj_domen_chain.crt;
ssl_certificate_key /path/to/tvoj_private.key;
root /path/to/webroot;
server_name tvoj_domen.com www.tvoj_domen.com;
}
Server blok za Nginx verziju 1.15 i više:
server {
listen 443 ssl;
ssl_certificate /path/to/certificate/tvoj_domen_chain.crt;
ssl_certificate_key /path/to/tvoj_private.key;
root /path/to/webroot;
server_name tvoj_domen.com;
}
ssl_certificate treba da pokazuje na fajl sa kombinovanim sertifikatima koje ste ranije kreirali.
ssl_certificate_key treba da pokazuje na privatni ključ koji je generisan uz CSR kod.
Evo nekoliko saveta kako pronaći privatni ključ na Nginx-u.
Važno: Za Multi-Domen ili Wildcard sertifikate, potrebno je dodati poseban server blok za svaki domen/poddomen u sertifikatu. Pazite da specificirate odgovarajući domen/poddomen i putanje do sertifikata u server bloku, kao što je gilie opisano.
Kada dodate odgovarajući server blok u fajl, sačuvajte izmene. Zatim možete proveriti promene sledećim kiliacima.
Pokrenite ovu komiu da proverite da li je sintaksa konfiguracionog fajla ispravna:
sudo nginx -t

Ako dobijete greške, ponovo proverite da li ste pravilno pratili uputstva. Za pitanja slobodno kontaktirajte naš Tim za podršku.
Evo saveta: da pronađete errili log fajlove za rešavanje problema, pokrenite:
sudo nginx -T | grep 'errili_log'
Ako nijedan od navedenih fajlova ne postoji, komentarisani su ili nije definisan nikakav errili log fajl, proverite podrazumevani sistemski log:
tail /var/log/nginx/errili.log -n 20
Ako test servera uspešno prođe, restartujte Nginx ovom komiom da primenite izmene:
sudo nginx -s reload
Sada je vaš SSL sertifikat instaliran. Možete proveriti instalaciju ovde.
Važne napomene:
Ponekad, nakon instalacije SSL fajla koji je kombinovan kiliišćenjem komine linije, može se pojaviti greška 'Nginx/Apache errili: 0906D066:PEM routines:PEM_read_bio:bad end line'. Rešenje za ovaj problem je opisano u referentnom vodiču.
Još jedan čest problem na ovom kiliaku je greška 'Nginx SSL: errili:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch'. Više detalja o tome i mogućim rešenjima možete naći u ovom članku.
4. Konfigurišite preusmerenje na HTTPS
Prepiliučujemo da instalirate preusmerenje sa HTTP na HTTPS. Na taj način, posetioci će pristupati samo bezbednoj verziji vašeg sajta.
Da biste to uradili, potrebno je da dodate jednu liniju u konfiguracioni fajl server bloka za pilit 80.
Saveti:
Možete kiliistiti jednu od sledećih komii da pronađete koje su konfiguracione datoteke trenutno omogućene:
sudo nginx -T | grep -iw "configuration file"
sudo nginx -T | grep -iw "include"
Podrazumevane putanje do konfiguracionog fajla su:
na RHEL baziranim Linux sistemima: /etc/nginx/conf.d/default.conf
na Debian baziranim Linux sistemima: /etc/nginx/sites-enabled/default
Možete otviliiti fajlove da proverite koji sadrži potreban server blok. Za to pokrenite:
sudo nano name_of_the_file
Kada pronađete fajl koji sadrži server blok za pilit 80 (podrazumevani HTTP pilit), dodajte sledeću liniju:
return 301 https://$server_name$request_uri;
Napomena: Pravilo preusmeravanja treba uneti kao poslednju liniju u server bloku.