V tomto článku budeme pracovať na tom, ako presmerovať webový prenos z HTTP na zabezpečený HTTPS v Nginx.
Odpovede a požiadavky sa vracajú vo forme holého textu v protokole HTTP, zatiaľ čo protokol HTTPS šifruje komunikáciu medzi systémom klienta a servera pomocou protokolu SSL / TLS. Z mnohých dôvodov sa preto protokol HTTPS používa cez protokol HTTP, ktorý je uvedený nižšie:
- Všetky dáta medzi klientom a serverom v oboch smeroch sú šifrované. Ktokoľvek však nemôže získať prístup k citlivým informáciám, ak je zachytený.
- Ak používate HTTPS, prehliadač Google Chrome a ďalšie prehliadače budú považovať doménu vášho webu za bezpečnú.
- Verzia HTTPS zlepšuje výkon zadaného webu pomocou protokolu HTTP / 2.
- Ak poskytujete doménu svojho webu prostredníctvom protokolu HTTPS, bude mať tento web lepšie hodnotenie na stránkach Google, pretože uprednostňuje všetky zabezpečené webové stránky pomocou protokolu HTTPS.
Uprednostňuje sa presmerovanie prenosu HTTP na HTTPS v Nginx v samostatnom serverovom bloku pre každú verziu stránky. Odporúča sa tiež vyhnúť sa presmerovaniu prenosu pomocou smeru „ak“, ktorý by mohol spôsobiť neobvyklé správanie servera.
Presmerujte všetku komunikáciu z HTTP na HTTPS
Pridajte nasledujúce zmeny do konfiguračného súboru Nginx, aby ste presmerovali všetku komunikáciu z verzie HTTP na HTTPS:
serverpočúvať 80 default_server;
názov servera _;
návrat 301 https: // $ host $ request_uri;
Ďalej sme rozpracovali každý vyššie uvedený výraz:
Počúvať 80 default_server - bude to signalizovať vášmu systému, ktorý zachytáva všetku komunikáciu HTTP na porte 80.
Server_name _ - je to doména, ktorá sa bude zhodovať s akýmkoľvek názvom hostiteľa.
Vrátiť 301 https: // $ host $ request_uri - toto oznámi vašim vyhľadávacím nástrojom, ktoré ho trvalo presmerujú. Určuje, že premenná $ host má názvy domén.
Po zmene konfiguračných nastavení musíte znova načítať služby Nginx do vášho systému. Znova teda načítajte svoje služby Nginx pomocou nasledujúceho príkazu:
$ sudo systemctl znovu načítať nginxPresmerujte HTTP na HTTPS verziu pre zadanú doménu v Nginx
Po nainštalovaní certifikátu SSL na vašu doménu budete mať pre túto doménu dve možnosti blokovania servera. Jeden blok je určený pre verziu HTTP počúvajúcu na porte 80 a druhou verziou je HTTPS na porte 443. Ak však chcete presmerovať jednu doménu webovej stránky z protokolu HTTP na HTTPS, musíte otvoriť konfiguráciu Nginx. Tento konfiguračný súbor môžete nájsť v adresári / etc / nginx / sites-available. V každom prípade, ak ste tento súbor nenašli, môžete ho vyhľadať pomocou / etc / nginx / nginx.conf, / usr / local / nginx / conf alebo / usr / local / etc / nginx a potom v tomto súbore vykonajte nasledujúce zmeny:
serverpočúvať 80;
názov_serveru doména-názov.com www.doménové meno.com;
vrátiť 301 https: // názov-domény.com $ request_uri;
Poďme pochopiť vyššie uvedený kód riadok po riadku.
Počúvajte 80 - pomocou portu 80 bude server počúvať všetky prichádzajúce pripojenia zadanej domény.
Názov_serveru doména-názov.com www.doménové meno.com - určuje názvy domén. Nahraďte ho teda názvom domény svojej webovej stránky, ktorú chcete presmerovať.
Vrátiť 301 https: // názov-domény.com $ request_uri - presunie prenos na verziu HTTPS stránky. Premenná $ request_uri sa používa pre úplné URI pôvodnej požiadavky, v ktorej sú zahrnuté aj argumenty.
Pomocou nasledujúcej metódy môžete presmerovať prenos na verziu HTTPS www na verziu, ktorá nie je www. Pre verzie iné ako www aj www sa odporúča vytvoriť presmerovanie v samostatnom bloku servera.
Vysvetlíme si to na príklade. Ak chcete presmerovať požiadavky www HTTPS na verziu, ktorá nie je www, postupujte podľa nasledujúcej konfigurácie:
serverpočúvať 80;
názov_serveru doména-názov.com www.doménové meno.com;
vrátiť 301 https: // názov-domény.com $ request_uri;
server
počúvať 443 ssl http2;
názov_serveru www.doménové meno.com;
# ... iný kód
vrátiť 301 https: // názov-domény.com $ request_uri;
server
počúvať 443 ssl http2;
názov_serveru doména-názov.com;
# ... iný kód
Nahraďte názov domény svojou doménou, napríklad www.linuxhint.com.
Záver
Diskutovali sme o tom, ako presmerovať prenos z verzie HTTP na HTTPS na serveri Nginx. Zmenou nastavenia konfiguračného súboru Nginx môžete ľahko presmerovať prenos na HTTPS buď pre zadanú doménu, alebo presmerovať všetky. Táto metóda, ktorú sme spomenuli v tomto článku, vám môže pomôcť zvýšiť bezpečnosť vašich webových stránok vykonaním akýchkoľvek zmien v používateľskej skúsenosti.