![[RIEŠENÉ] Narazili ste na YouTube na 500 interných chýb servera?](/f/df7a49bf8c7eb860a5526a4daee53897.png?width=100&height=100)
V tejto príručke prediskutujeme spôsob zabezpečenia Nginx webový server v FreeBSD s TLS/SSL certifikáty ponúkané pre Zašifrujeme certifikačnú autoritu. Ukážeme vám tiež, ako automaticky obnoviť certifikáty Lets 'Encrypt pred dátumom vypršania platnosti.
TLS, skratka pre Zabezpečenie transportnej vrstvy, je protokol, ktorý beží pod HTTP protokol a používa certifikáty a kľúče na zapuzdrenie paketov a šifrovanie údajov vymieňaných medzi serverom a klientom, alebo v tomto prípade medzi Nginx webový server a prehliadač klienta, aby zabezpečili pripojenie tak, aby tretia strana, ktorá by mohla zachytávať prenos, nemohla dešifrovať prenos.
Prečítajte si tiež: Nainštalujte si Let's Encrypt pre Apache na FreeBSD
Proces získania zadarmo Poďme šifrovať certifikát v FreeBSD sa dá inštaláciou výrazne zjednodušiť certboot client utility, čo je oficiálny klient Let’s Encrypt používaný na generovanie a sťahovanie certifikátov.
1. Štandardne je TLS/SSL konfigurácia servera nie je povolená v FreeBSD pretože TLS príkazy bloku servera sú komentované v Nginx predvolený konfiguračný súbor.
Ak chcete aktivovať TLS server v Nginx, otvorené nginx.conf konfiguračný súbor, vyhľadajte riadok, ktorý definuje začiatok súboru SSL server a aktualizujte celý blok tak, aby vyzeral ako v nižšie uvedenej ukážke.
# nano /usr/local/etc/nginx/nginx.conf.
Výňatok z bloku Nginx HTTPS:
Konfigurácia Nginx HTTPS
server {počúvať 443 ssl predvolený_server; názov servera www.vasadomena.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; chybová_stránka 500 502 503 504 /50x.html; umiestnenie = /50x.html {root/usr/local/www/nginx-dist; } umiestnenie/{root/usr/local/www/nginx; index index.html index.htm; try_files $ uri $ uri / /index.php?$args; } ssl_certificate "/usr/local/etc/letsencrypt/live/www.vasadomena.com/cert.pem"; ssl_certificate_key "/usr/local/etc/letsencrypt/live/www.vasadomena.com/privkey.pem"; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_dhparam /usr/local/etc/nginx/dhparam.pem; ssl_session_cache zdieľané: SSL: 1m; ssl_session_timeout 10m; ssl_ciphers VYSOKÉ:! aNULL:! MD5; ssl_prefer_server_ciphers on; # Použite kompresiu gzip. zapnúť gzip; gzip_disable "msie6"; gzip_vary zapnuté; gzip_proxied any; gzip_comp_level 5; gzip_buffers 16 8k; gzip_http_version 1.0; # Nastaviť premennú tak, aby obchádzala nedostatok vnorených podmienených súborov $ cache_uri $ request_uri; poloha ~ /.well-known {allow all; } umiestnenie ~ \ .php $ {root/usr/local/www/nginx; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME /skripty $ fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $ request_filename; zahrnúť fastcgi_params; } }
Vyššie uvedený blok okrem SSL blok, obsahuje tiež niektoré príkazy pre umožňujúca kompresiu gzip a Správca procesov FastCGI, slúži na prenos kódu PHP do PHP-FPM brána na spustenie dynamických webových aplikácií.
Potom, čo ste pridali vyššie uvedený kód do Nginx hlavný konfiguračný súbor, nerestartujte démona ani nepoužívajte nastavenia pred inštaláciou a získaním súboru Poďme šifrovať certifikát pre vašu doménu.
2. Proces inštalácie Let's Encrypt certbot nástroj klienta vo FreeBSD zahŕňa stiahnutie zdrojového kódu pre py-certbot a lokálne ho skompilovať zadaním nižšie uvedených príkazov.
# cd/usr/ports/security/py-certbot. # urobte inštaláciu čistou.
3. Zostavovanie súboru py-certbot Tento nástroj trvá veľa času v porovnaní s inštaláciou bežného binárneho balíka. Počas tejto doby je potrebné stiahnuť sériu závislostí skompilovaných lokálne vo FreeBSD.
Na vašej obrazovke sa tiež zobrazí séria výziev, ktoré vyžadujú, aby ste vybrali, ktoré balíky sa použijú v čase kompilácie pre každú závislosť. Na prvej obrazovke vyberte stlačením nasledujúce nástroje [priestor] kľúč na zostavenie súboru python27 závislosť, ako je znázornené na obrázku nižšie.
4. Ďalej vyberte DOCS a NITE pre gettext-tools závislosť a tlač OK pokračovať tak, ako je to znázornené na obrázku nižšie.
5. Na ďalšej obrazovke nechajte ikonu SKÚŠKY možnosť deaktivovaná pre libffi-3.2.1 a stlačte OK posunúť sa ďalej.
6. Ďalej udrieť priestor vybrať DOCS pre py27-enum34 dependency, ktorý nainštaluje dokumentáciu k tomuto nástroju, a stlačte OK pokračovať, ako je znázornené na obrázku nižšie.
7. Nakoniec sa rozhodnete nainštalovať ukážky pre py27-openssl závislosť stlačením [priestor] kľúč a stlačte OK dokončiť proces kompilácie a inštalácie pre py-certbot zákazník.
8. Po procese kompilácie a inštalácie py-certbot nástroj skončí, spustením nižšie uvedeného príkazu aktualizujte nástroj v najnovšej verzii balíka, ako je to znázornené na nižšie uvedených snímkach obrazovky.
# pkg nainštalovať py27-certbot.
9. Aby sa predišlo niektorým problémom, môže k tomu dôjsť pri získavaní bezplatného softvéru Poďme šifrovať certifikát, najčastejšou chybou je „pkg_resources. DistributionNotFound”, Uistite sa, že vo vašom systéme sú prítomné aj nasledujúce dve závislosti: py27-soľ a py27-acme.
# pkg nainštalujte py27-salt. # pkg nainštalovať py27-acme.
10. Ak chcete získať samostatný certifikát Let’s Encrypt pre svoju doménu, spustite nasledujúci postup príkaz a poskytne vám názov domény a všetky subdomény, pre ktoré chcete získať certifikáty čo znamená -d
vlajka.
# certbot certonly --standalone -d yourdomain.com -d www.vasadomena.com
11. Pri generovaní certifikátu budete vyzvaní, aby ste zadali svoju e -mailovú adresu a súhlasili s podmienkami služby Let's Encrypt. Zadajte a
z klávesnice na odsúhlasenie a pokračovanie a tiež sa vás opýta, či ste ochotní zdieľať svoju e -mailovú adresu s partnermi Let’s Encrypt.
V prípade, že nechcete zdieľať svoju e -mailovú adresu, stačí napísať č
slovo do výzvy a stlačte [vstúpiť] kľúč na pokračovanie. Potom, čo boli úspešne získané certifikáty pre vašu doménu, niektoré dostanete dôležité poznámky, ktoré vás budú informovať o tom, kde sú certifikáty uložené vo vašom systéme a kedy vypršať.
12. V prípade, že chcete získať certifikát Let’s Encrypt pomocou „webroot”Doplnením doplnku webroot adresár servera Nginx pre vašu doménu, zadajte nasledujúci príkaz s príponou -chvostovka
a -w
vlajky. V predvolenom nastavení, ak ste nezmenili cestu webového koreňa Nginx, mala by byť umiestnená v /usr/local/www/nginx/ systémová cesta.
# certbot certonly --webroot -w /usr/local/www/nginx/ -d yourdomain.com -d www.vasadomena.com
Rovnako ako v --strandalone
postup získania certifikátu, -chvostovka
Procedúra vás tiež požiada o zadanie e -mailovej adresy na obnovenie certifikátov a bezpečnostných upozornení, aby ste mohli stlačiť a
súhlasiť s podmienkami Let's Encrypt a č
alebo Áno
zdieľať alebo nezdieľať e -mailovú adresu Partneri zašifrujeme, ako je to znázornené na nižšie uvedenej ukážke.
Uvedomte si, že klient certbot dokáže rozpoznať falošné e -mailové adresy a nenechá vás pokračovať vo vytváraní certifikátu, kým nezadáte skutočnú e -mailovú adresu.
Ukladanie denníka ladenia do /var/log/letsencrypt/letsencrypt.log. Zadajte e -mailovú adresu (používa sa na naliehavé obnovenie a bezpečnostné oznámenia) (Zadajte „c“ do. Zrušiť):[chránené e -mailom] #Bude zistená falošná e -mailová adresa. Zdá sa, že s touto adresou sú problémy. Zadajte e -mailovú adresu (používa sa pre. naliehavé obnovenie a bezpečnostné oznámenia) Ak to skutočne chcete preskočiť, môžete. spustite klienta pomocou --register-unsafely-without-email, ale potom sa uistite. zálohujte si kľúč svojho účtu z/etc/letsencrypt/accounts (na zrušenie zadajte „c“):[chránené e -mailom] Prečítajte si Podmienky služby na. https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. Musíte súhlasiť. aby ste sa mohli zaregistrovať na serveri ACME na. https://acme-v01.api.letsencrypt.org/directory. (A) gree/(C) ancel:a
Boli by ste ochotní zdieľať svoju e-mailovú adresu s Electronic Frontier Foundation, zakladajúcim partnerom projektu Let's Encrypt a neziskovou organizáciou, ktorá vyvíja Certbot? Radi by sme vám poslali e -mail o EFF a našej práci na šifrovaní webu, ochrane jeho používateľov a obrane digitálnych práv. (Áno nie:n
Získanie nového certifikátu Vykonanie nasledujúcich výziev: výzva http-01 pre www.domain.com Použitie cesty webroot/usr/local/www/nginx/pre všetky bezkonkurenčné domény. Čaká sa na overenie... Čistenie výziev DÔLEŽITÉ POZNÁMKY: - Blahoželáme! Váš certifikát a reťazec boli uložené na /usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem. Platnosť vášho certifikátu skončí 28. 12. 2017. Ak chcete v budúcnosti získať novú alebo vylepšenú verziu tohto certifikátu, jednoducho znova spustite certbot. Ak chcete * interaktívne obnoviť * všetky * svoje certifikáty, spustite príkaz „certbot Obnoviť“ - poverenia vášho účtu boli uložené v konfiguračnom adresári Certbot na adrese/usr/local/etc/letsencrypt. Teraz by ste mali vytvoriť bezpečnú zálohu tohto priečinka. Tento konfiguračný adresár bude tiež obsahovať certifikáty a súkromné kľúče získané spoločnosťou Certbot, takže pravidelné zálohovanie tohto priečinka je ideálne. - Ak sa vám páči Certbot, zvážte podporu našej práce: Darovaním pre ISRG / Let's Encrypt: https://letsencrypt.org/donate Darovanie pre EFF: https://eff.org/donate-le
13. Umiestnenie získaných certifikátov a kľúčov Let’s Encrypt vo FreeBSD je /usr/local/etc/letsencrypt/live/www.yourdomain.com/ systémová cesta. Problém velenie na zobrazenie komponentov vášho certifikátu Let’s Encrypt: reťazového súboru, súboru fullchain, súkromného kľúča a súboru certifikátu, ako je znázornené v nasledujúcom príklade.
# ls /usr/local/etc/letsencrypt/live/www.yourdomain.com/
14. Ak chcete nainštalovať certifikáty Let's Encrypt pre vašu doménu na webový server Nginx, otvorte hlavný konfiguračný súbor Nginx alebo konfiguračný súbor pre Server Nginx TLS, v prípade, že ide o samostatný súbor, a upravte nižšie uvedené riadky tak, aby odrážali cestu certifikátov vydaných šifrovaním, ako je znázornené na obrázku. nižšie.
# nano /usr/local/etc/nginx/nginx.conf.
Aktualizujte nasledujúce riadky, aby vyzerali ako v tejto ukážke:
ssl_certificate "/usr/local/etc/letsencrypt/live/www.vasadomena.com/cert.pem"; ssl_certificate_key "/usr/local/etc/letsencrypt/live/www.vasadomena.com/privkey.pem";
15. Tiež, ak je linka ssl_dhparam je prítomný v Nginx SSL konfiguráciu, mali by ste vygenerovať novú 2048 trocha Diffie – Hellman kľúč s nasledujúcim príkazom:
# openssl dhparam –out /usr/local/etc/nginx/dhparam.pem 2048
16. Nakoniec, aby ste mohli aktivovať konfiguráciu Nginx TLS, najskôr skontrolujte, či je možná globálna konfigurácia Nginx chyby syntaxe a potom reštartujte službu Nginx, aby použila konfiguráciu SSL, vydaním nasledujúceho príkazy.
# nginx -t. # reštartujte službu nginx.
17. Potvrďte, či je démon Nginx záväzný 443 port zadaním nasledujúcich príkazov, ktoré dokážu vypísať všetky otvorené sieťové zásuvky v systéme v stave počúvania.
# netstat -an -p tcp | grep POČÚVAJTE. # sockstat -4
18. Adresu svojej domény môžete navštíviť aj prostredníctvom HTTPS protokol otvorením prehliadača a zadaním nasledujúcej adresy potvrďte, že certifikáty Let's Encrypt fungujú podľa očakávania. Pretože používate certifikáty vygenerované platnou certifikačnou autoritou, v prehliadači by sa nemala zobrazovať žiadna chyba.
https://www.yourdomain.com.
19. Obslužný program Openssl vám môže tiež pomôcť nájsť informácie o certifikáte získanom od Let's Encrypt CA spustením príkazu s nasledujúcimi možnosťami.
# openssl s_client -connect www.vasadomena.com: 443
V prípade, že chcete prinútiť Nginx, aby nasmeroval všetky požiadavky http na https prijaté pre vašu doménu na port 80 do HTTPS, otvorte konfiguračný súbor Nginx, vyhľadajte direktívu servera pre port 80 a pridajte nasledujúci riadok za príkaz server_name, ako je to znázornené na nasledujúcom príklade.
prepísať ^(.*) https://www.yourdomain.com$1 trvalé;
20. Nastavenie automatického obnovovania certifikátu vydaného orgánom Let’s Encrypt pred jeho vypršaním je možné vykonať naplánovaním spustenia úlohy cron jedenkrát denne zadaním nasledujúceho príkazu.
# crontab -e.
Úloha Cron obnoviť certifikát.
0 0 * * * obnovenie certifikátu >> /var/log/letsencrypt.log.
To je všetko! Nginx teraz môže vašim návštevníkom poskytovať zabezpečené webové aplikácie pomocou bezplatných certifikátov Let’s Encrypt.