Kaip apsaugoti „Nginx“ naudojant „Let's Encrypt“ naudojant „CentOS 8“.


2016 m. balandžio mėn. įkurtas Electronic Frontier Foundation (EFF), Let’s Encrypt yra nemokamas automatizuotas skaitmeninis sertifikatas, suteikiantis TLS šifravimą svetainėms visiškai nemokamai.

Sertifikato Šifruokime tikslas – automatizuoti saugos sertifikato patvirtinimą, kūrimą, pasirašymą ir automatinį atnaujinimą. Šis sertifikatas įgalina šifruotus ryšius su žiniatinklio serveriais, naudojant HTTPS protokolą, paprastai, be vargo ir be jokių sudėtingumo. Sertifikatas galioja tik 90 dienų, po kurių galima suaktyvinti automatinį atnaujinimą.

Rekomenduojama skaityti: kaip apsaugoti „Apache“ naudojant „Let's Encrypt SSL“ sertifikatą „CentOS 8“

Šiame straipsnyje parodysime, kaip galite įdiegti Šifruokime, kad gautumėte nemokamą SSL sertifikatą, kad apsaugotumėte Nginx žiniatinklio serverį CentOS 8 ( tos pačios instrukcijos veikia ir RHEL 8). Taip pat paaiškinsime, kaip automatiškai atnaujinti SSL sertifikatą.

Būtinos sąlygos

Prieš tęsdami įsitikinkite, kad patikrinote toliau nurodytus dalykus.

1. Visiškai apibrėžtas domeno pavadinimas (FQDN), nukreipiantis į tam skirtą žiniatinklio serverio IP adresą. Tai turi būti sukonfigūruota jūsų DNS žiniatinklio prieglobos paslaugų teikėjo klientų srityje. Šioje mokymo programoje naudojame domeno pavadinimą linuxtechwhiz, kuris nukreipia į IP adresą 34.70.245.117.

2. Taip pat galite tai patvirtinti atlikdami paiešką pirmyn, naudodami komandą dig, kaip parodyta.

dig linuxtechwhiz.info

3. Nginx įdiegta ir veikia žiniatinklio serveryje. Tai galite patvirtinti prisijungę prie terminalo ir vykdydami toliau pateiktą komandą. Jei „Nginx“ neįdiegtas, vadovaukitės mūsų straipsniu, kad įdiegtumėte „Nginx“ „CentOS 8“.

sudo systemctl status nginx

4. Taip pat galite patvirtinti apsilankę žiniatinklio serverio URL žiniatinklio naršyklėje.

http://server-IP-or-hostname

Iš URL aiškiai matome, kad svetainė nėra saugi, todėl nėra užšifruota. Tai reiškia, kad bet kokios žiniatinklio serveriui pateiktos užklausos gali būti perimtos, nes tai apima svarbią ir konfidencialią informaciją, pvz., naudotojų vardus, slaptažodžius, socialinio draudimo numerius ir kredito kortelės informaciją.

Dabar susitepkime rankas ir įdiegkime Šifruokime.

1 veiksmas. Įdiekite „Certbot“ sistemoje „CentOS 8“.

Norėdami įdiegti Šifruokime sertifikatą, pirmiausia turite įdiegti certbot. Tai išplečiamasis klientas, kuris gauna saugos sertifikatą iš Užšifruokime autoritetą ir leidžia automatizuoti žiniatinklio serverio naudojamo sertifikato patvirtinimą ir konfigūraciją.

Atsisiųskite certbot naudodami curl komandą.

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

Tada perkelkite sertifikatą į /usr/local/bin katalogą.

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

Tada priskirkite failo leidimą certbot failui, kaip parodyta.

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

2 veiksmas. Sukonfigūruokite Nginx serverio bloką

Serverio blokas Nginx yra virtualaus pagrindinio kompiuterio „Apache“ atitikmuo. Nustatę serverio blokus ne tik galite nustatyti kelias svetaines viename serveryje, bet ir leidžia „certbot“ įrodyti domeno nuosavybės teisę sertifikavimo institucijai – CA.

Norėdami sukurti serverio bloką, paleiskite parodytą komandą.

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

Būtinai pakeiskite domeno pavadinimą savo domeno pavadinimu. Tada įklijuokite toliau pateiktą konfigūraciją.

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;
   }
}

Išsaugokite failą ir išeikite iš teksto rengyklės.

3 veiksmas: įdiekite „Lets Encrypt“ sertifikatą „CentOS 8“.

Dabar naudokite komandą certbot, kad inicijuotumėte „Let’s Encrypt“ saugos sertifikato gavimą ir konfigūraciją.

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

Ši komanda paleis ir įdiegs kelis Python paketus ir jų priklausomybes, kaip parodyta.

Po to bus rodomas interaktyvus raginimas, kaip parodyta:

Jei viskas klostėsi gerai, pačioje pabaigoje turėtumėte matyti sveikinimą.

Norėdami patvirtinti, kad jūsų Nginx svetainė yra užšifruota, iš naujo įkelkite tinklalapį ir stebėkite spynos simbolį URL pradžioje. Tai rodo, kad svetainė apsaugota naudojant SSL/TLS šifravimą.

Norėdami gauti daugiau informacijos apie saugos sertifikatą, spustelėkite spynos simbolį ir pasirinkite parinktį Sertifikatas.

Daugiau informacijos apie saugos sertifikatą bus rodoma, kaip parodyta toliau.

Be to, norėdami patikrinti saugos sertifikato stiprumą, eikite į https://www.ssllabs.com/ssltest/ ir raskite tikslesnę bei nuodugnesnę saugos sertifikato būsenos analizę.

4 veiksmas. Užšifruokime sertifikato atnaujinimas

Kaip matėme anksčiau, saugos sertifikatas galioja tik 90 dienų ir jį reikia atnaujinti nepasibaigus galiojimo laikui.

Galite imituoti arba išbandyti sertifikato atnaujinimo procesą vykdydami komandą:

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

Išvada

Tai užbaigia šią mokymo programą, kaip apsaugoti Nginx naudojant Šifruokime sistemoje CentOS 8. Užšifruokime – tai efektyvus ir nesudėtingas būdas apsaugoti „Nginx“ žiniatinklio serverį, kurį kitu atveju būtų sudėtinga atlikti rankiniu būdu.

Dabar jūsų svetainė turėtų būti visiškai užšifruota. Likus kelioms savaitėms iki sertifikato galiojimo pabaigos datos EFF įspės jus el. paštu, kad atnaujintumėte sertifikatą, kad išvengtumėte trikdžių, kurie gali kilti dėl pasibaigusio sertifikato galiojimo. Tai viskas, vaikinai šiandien!