Kako osigurati Nginx pomoću Let's Encrypt na CentOS 8


Osnovan u aprilu 2016. od strane Electronic Frontier Foundation (EFF), Let’s Encrypt je besplatni i automatizirani digitalni certifikat koji pruža TLS enkripciju za web stranice bez ikakvih troškova.

Cilj certifikata Let’s Encrypt je automatizacija provjere valjanosti, kreiranja, potpisivanja kao i automatskog obnavljanja sigurnosnog certifikata. Ovaj sertifikat omogućava šifrovane veze sa web serverima pomoću HTTPS protokola na jednostavan način bez ikakvih komplikacija. Certifikat vrijedi samo 90 dana nakon čega se može aktivirati automatsko obnavljanje.

Preporučeno čitanje: Kako osigurati Apache pomoću Let’s Encrypt SSL certifikata na CentOS 8

U ovom članku ćemo pokazati kako možete instalirati Let's Encrypt da dobijete besplatni SSL certifikat za osiguranje Nginx web servera na CentOS 8 ( ista uputstva rade i na RHEL 8). Također ćemo vam objasniti kako da automatski obnovite svoj SSL certifikat.

Preduvjeti

Prije nego što nastavimo, provjerite imate li sljedeće.

1. Potpuno kvalificirani naziv domene (FQDN) koji upućuje na namjensku IP adresu web servera. Ovo treba da bude konfigurisano u oblasti klijenta vašeg DNS provajdera veb hostinga. Za ovaj vodič koristimo ime domene linuxtechwhiz koje upućuje na IP adresu 34.70.245.117.

2. Ovo možete potvrditi i tako što ćete izvršiti traženje unaprijed koristeći komandu dig kao što je prikazano.

dig linuxtechwhiz.info

3. Nginx je instaliran i radi na web serveru. To možete potvrditi tako što ćete se prijaviti na terminal i pokrenuti naredbu ispod. Ako Nginx nije instaliran, slijedite naš članak da instalirate Nginx na CentOS 8.

sudo systemctl status nginx

4. Također možete potvrditi posjetom URL web servera u web pretraživaču.

http://server-IP-or-hostname

Iz URL-a možemo jasno vidjeti da stranica nije sigurna, a samim tim ni šifrirana. To implicira da se svi zahtjevi upućeni web serveru mogu presresti, što uključuje kritične i povjerljive informacije kao što su korisnička imena, lozinke, brojevi socijalnog osiguranja i podaci o kreditnoj kartici da spomenemo samo neke.

Sada uprljamo ruke i instalirajmo Let’s Encrypt.

Korak 1. Instalirajte Certbot u CentOS 8

Da biste instalirali certifikat Let’s Encrypt, prije svega morate imati instaliran certbot. Ovo je proširivi klijent koji preuzima sigurnosni certifikat od Let’s Encrypt Authority i omogućava vam da automatizirate provjeru valjanosti i konfiguraciju certifikata za korištenje od strane web servera.

Preuzmite certbot koristeći komandu curl.

sudo curl -O https://dl.eff.org/certbot-auto

Zatim premjestite certifikat u direktorij /usr/local/bin.

sudo mv certbot-auto /usr/local/bin/certbot-auto

Zatim dodijelite dozvolu datoteke certbot datoteci kao što je prikazano.

chmod 0755 /usr/local/bin/certbot-auto

Korak 2. Konfigurišite Nginx serverski blok

Blok servera u Nginxu je ekvivalent virtuelnom hostu u Apacheu. Postavljanje serverskih blokova ne samo da vam omogućava da postavite više web lokacija na jednom serveru, već i omogućava certbot-u da dokaže vlasništvo nad domenom Certificate Authority – CA.

Da kreirate blok servera, pokrenite prikazanu naredbu.

sudo vim /etc/nginx/conf.d/www.linuxtechwhiz.info

Obavezno zamijenite naziv domene vlastitim imenom domene. Zatim zalijepite konfiguraciju ispod.

server {
   server_name www.linuxtechwhiz.info;
   root /opt/nginx/www.linuxtechwhiz.info;

   location / {
       index index.html index.htm index.php;
   }

   access_log /var/log/nginx/www.linuxtechwhiz.info.access.log;
   error_log /var/log/nginx/www.linuxtechwhiz.info.error.log;

   location ~ \.php$ {
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Sačuvajte datoteku i izađite iz uređivača teksta.

Korak 3: Instalirajte Lets Encrypt certifikat na CentOS 8

Sada koristite naredbu certbot da inicijalizirate preuzimanje i konfiguraciju sigurnosnog certifikata Let’s Encrypt.

sudo /usr/local/bin/certbot-auto --nginx

Ova komanda će pokrenuti i instalirati više Python paketa i njihovih zavisnosti kao što je prikazano.

Nakon toga će uslijediti interaktivni upit kao što je prikazano:

Ako je sve prošlo kako treba, na samom kraju biste trebali vidjeti čestitku.

Da biste potvrdili da je vaša Nginx stranica šifrirana, ponovo učitajte web stranicu i promatrajte simbol katanca na početku URL-a. Ovo ukazuje da je stranica zaštićena SSL/TLS enkripcijom.

Da biste dobili više informacija o sigurnosnom certifikatu, kliknite na simbol katanca i odaberite opciju 'Certifikat'.

Više informacija o sigurnosnom certifikatu će biti prikazano kao što je prikazano u nastavku.

Osim toga, da biste testirali snagu sigurnosnog certifikata, idite na https://www.ssllabs.com/ssltest/ i pronađite precizniju i dublju analizu statusa sigurnosnog certifikata.

Korak 4. Obnavljanje Let’s Encrypt certifikata

Kao što smo ranije vidjeli, sigurnosni certifikat vrijedi samo u trajanju od 90 dana i potrebno ga je obnoviti prije isteka.

Možete simulirati ili testirati proces obnavljanja certifikata pokretanjem naredbe:

sudo /usr/local/bin/certbot-auto renew --dry-run

Zaključak

Ovo završava ovaj vodič o osiguranju Nginxa pomoću Let’s Encrypt na CentOS 8. Let’s Encrypt nudi efikasan i bezbrižan način osiguranja vašeg Nginx web servera koji bi inače bio složen posao za ručno.

Vaša stranica bi sada trebala biti potpuno šifrirana. Nekoliko sedmica do datuma isteka certifikata, EFF će vas obavijestiti putem e-pošte da obnovite certifikat kako biste izbjegli prekid koji može nastati zbog isteka certifikata. To je sve momci za danas!