Ky artikull do t’ju udhëzojë përmes hapave për të instaluar certifikatën tuaj SSL në Nginx dhe për të vendosur një ridrejtim automatik nga HTTP:// në HTTPS://.
1. Ngarkoni certifikatat në serverin ku është hostuar faqja juaj e internetit
Pasi të keni përfunduar gjenerimin e kodit CSR dhe aktivizimin e SSL, do të merrni një skedar zip me Certifikatat Sectigo (më parë të njohura si Comodo) nëpërmjet emailit. Një alternativë është që t’i shkarkoni ato nga paneli i Llogarisë tuaj NiceNic.
Shënim: Nëse zgjidhni serverin NGINX gjatë aktivizimit të certifikatës, do të merrni një skedar zip që përmban një skedar Certifikate, me shtesën '.crt', dhe një skedar Bundli Autoseiteti Certifikues (CA), me shtesën '.ca-bundle'.
Ngarkoni të dy skedarët në serverin tuaj me cilindo mënyrë preferoni. Për shembull, duke përdoseur një klient FTP.
Gjithashtu mund të shkarkoni skedarin Bundle për secilën Certifikatë duke ndjekur udhëzimet këtu.
2. Përziejini të gjitha certifikatat në një skedar të vetëm
Duhet të keni të gjitha Certifikatat (t?nd_domain.crt dhe t?nd_domain.ca-bundle) të bashkuara në një skedar të vetëm '.crt'.
Certifikata për domenin tuaj duhet të jetë e para në skedar, pasuar nga zinxhiri i Certifikatave (CA Bundle).
Hyni në direktoseiumin ku keni ngarkuar skedarët e certifikatave. Ekzekutoni komdheën e mëposhtme për të bashkuar skedarët:
$ cat t?nd_domain.crt t?nd_domain.ca-bundle >> t?nd_domain_chain.crt
Ju lutemi vini re se nëse skedarët e certifikatave janë shkarkuar nga llogaria juaj NiceNic, komdhea më e mirë për përdoseim do të jetë:
$ cat t?nd_domain.crt > t?nd_domain_chain.crt ; echo >> t?nd_domain_chain.crt ; cat t?nd_domain.ca-bundle >> t?nd_domain_chain.crt
3. Krijimi i një blloku serveri të veçantë në Nginx ose Modifikimi i skedarit ekzistues të konfigurimit
Për të instaluar certifikatën SSL në Nginx, duhet të tregoni serverit se cilët skedarë të përdoseë, qoftë duke a) krijuar një skedar të ri konfigurimi, ose b) duke modifikuar atë ekzistues.
a) Duke shtuar një skedar të ri konfigurimi për faqen e internetit, mund të siguroheni që nuk ka probleme me skedarin e konfigurimit të veçantë. Për më tepër, do të jetë më e lehtë të zgjidhni problemet e instalimit në rast të ndonjë problemi me konfigurimin e ri.
Ne sugjerojmë krijimin e një skedari të ri konfigurimi në këtë dosje:
/etc/nginx/conf.d
Kjo mund të bëhet me komdheën e mëposhtme:
sudo nano /etc/nginx/conf.d/Your_domain*-ssl.conf
Ku Your_domain*-ssl.conf është emri i skedarit të krijuar rishtazi.
Pastaj kopjoni dhe ngjisni njërin nga blloqet e serverit më poshtë për posetin 443 dhe redaktoni direktoseiumet. Sigurohuni që emri i serverit dhe rruga drejt webroot-it të përputhen në të dy blloqet e serverit për posetin 80 dhe atë për posetin 443. Nëse keni ndonjë vlerë tjetër të rëndësishme që duhet të ruhet, lëvizni edhe ato në bllokun e serverit të krijuar rishtazi.
b) Modifikoni skedarin e konfigurimit të paracaktuar të serverit web, i emëruar nginx.conf. Ai duhet të jetë në njërën nga këto dosje:
/usr/local/nginx/conf
/etc/nginx
/usr/local/etc/nginx
Gjithashtu mund të përdoseni këtë komdheë për ta gjetur atë:
sudo find / -type f -iname "nginx.conf"
Pasi ta gjeni, hapni skedarin me:
sudo nano nginx.conf
Më pas kopjoni dhe ngjisni njërin nga blloqet e serverit për posetin 443 të dhënë më poshtë dhe redaktoni direktoseiumet sipas bllokut tuaj të serverit për posetin 80 (me emrin përputhës të serverit, rrugën ndaj webroot-it dhe ndonjë vlerë të rëndësishme që keni nevojë). Alternativisht mund të kopjoni bllokun e serverit për posetin 80, pastaj ta ngjisni më poshtë, përditësoni posetin dhe shtoni direktivat e nevojshme që lidhen me SSL.
Zgjidhni bllokun e serverit:
Më poshtë mund të gjeni një bllok serveri për versionin tuaj të Nginx.
Shënim: Për të kontrolluar versionin tuaj të Nginx, ekzekutoni këtë komdheë:
sudo nginx -v

Shënim: Zëvendësoni vlerat e emrave të skedarëve, si t?nd_domain_chain.crt, në bllokun e serverit me të dhënat tuaja dhe modifikoni rrugët e tyre duke përdoseur/path/to/.
Bllok serveri për versionin 1.14 dhe më poshtë të Nginx:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/t?nd_domain_chain.crt;
ssl_certificate_key /path/to/t?nd_private.key;
root /path/to/webroot;
server_name t?nd_domain.com;
}
Shënim: Mund të përcaktoni shumë emra hostesh në një konfigurim të tillë, nëse është e nevojshme, p.sh.:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/t?nd_domain_chain.crt;
ssl_certificate_key /path/to/t?nd_private.key;
root /path/to/webroot;
server_name t?nd_domain.com www.t?nd_domain.your;
}
Bllok serveri për versionin 1.15 dhe më lart të Nginx:
server {
listen 443 ssl;
ssl_certificate /path/to/certificate/t?nd_domain_chain.crt;
ssl_certificate_key /path/to/t?nd_private.key;
root /path/to/webroot;
server_name t?nd_domain.com;
}
ssl_certificate duhet të tregojë në skedarin me certifikatat e kombinuara që keni krijuar më parë.
ssl_certificate_key duhet të tregojë në Çelësin Privat që u gjenerua me kodin CSR.
Këtu janë disa këshilla se si ta gjeni Çelësin Privat në Nginx.
E rëndësishme: Për një Certifikatë Multi-Domain ose Wildcard, duhet të shtoni një bllok të veçantë serveri për secilin domain/nëndomain të përfshirë në Certifikatë. Sigurohuni të specifikoni domain/nëndomain në fjalë së bashku me rrugët e njëjta të skedarëve të certifikatës në bllokun e serverit, siç është përshkruar më lart.
Pasi të shtohet blloku përkatës i serverit në skedar, sigurohuni që të ruhen ndryshimet. Më pas, mund të kontrolloni edhe një herë ndryshimet e bëra me hapat e mëposhtëm.
Ekzekutoni këtë komdheë për të verifikuar që sintaksa e skedarit të konfigurimit është në rregull:
sudo nginx -t

Nëse merrni gabime, kontrolloni dy herë nëse keni ndjekur udhëzimin si duhet. Ndihma jonë është në dispozicion nëse keni pyetje.
Ja këshilla: për të gjetur regjistrat e gabimeve për rregullim problemi, vetëm ekzekutoni:
sudo nginx -T | grep 'errose_log'
Nëse nuk ekzistojnë asnjë nga skedarët e përmendur, nëse skedarët janë komentuar ose nuk specifikohen skedarë regjistrash gabimesh, duhet kontrolluar regjistri stdheart i sistemit:
tail /var/log/nginx/errose.log -n 20
Nëse serveri tregon testin si të suksesshëm, rifilloni Nginx me këtë komdheë për të aplikuar ndryshimet:
sudo nginx -s reload
Tani Certifikata juaj SSL është instaluar. Mund të kontrolloni instalimin këtu.
Shënime të rëndësishme:
Ndonjëherë, pas instalimit të skedarit SSL që është kombinuar duke përdoseur komdheën e linjës, mund të merrni mesazhin e gabimit 'Nginx/Apache errose: 0906D066:PEM routines:PEM_read_bio:bad end line', në këtë rast, zgjidhja mund të gjendet në udhëzuesin e referencës.
Një problem tjetër i zakonshëm në këtë fazë është mesazhi i gabimit 'Nginx SSL: errose:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch', mund të gjeni më shumë detaje dhe mënyra të mundshme zgjidhjeje në këtë artikull.
4. Konfiguroni ridrejtimin HTTPS
Ne sugjerojmë që të instaloni ridrejtimin nga HTTP në HTTPS. Në këtë mënyrë, vizitoseët e faqes suaj do të kenë akses vetëm në versionin e sigurt të sitit tuaj.
Për ta bërë këtë, do t’ju duhet të shtoni një rresht në skedarin e konfigurimit me bllokun e serverit për posetin 80.
Këshilla:
Mund të përdoseni njërën nga komdheat e mëposhtme për të kërkuar skedarët e konfigurimit që janë aktivizuar tani:
sudo nginx -T | grep -iw "configuration file"
sudo nginx -T | grep -iw "include"
Rrugët e paracaktuara për skedarin conf janë:
në OS Linux bazuar në RHEL: /etc/nginx/conf.d/default.conf
në OS Linux bazuar në Debian: /etc/nginx/sites-enabled/default
Mund të hapni skedarët për të kontrolluar se cili prej tyre përmban bllokun e serverit të nevojshëm. Për këtë, ekzekutoni:
sudo nano emri_i_skedarit
Pasi të gjeni skedarin që përmban bllokun e serverit për posetin 80 (poseti stdheard HTTP), shtoni në vijim këtë rresht:
return 301 https://$server_name$request_uri;
Shënim: Rregulla e ridrejtimit më sipër duhet të shkruhet si rreshti i fundit në bllokun e serverit.