Võimaldab krüptida

Nginxi pöördproxy HTTPS-iga LetsEncrypti kaudu

Nginxi pöördproxy HTTPS-iga LetsEncrypti kaudu
See on minu jätk eelmine postitus kus seadistame Nginxi abil lihtsa vastupidise puhverserveri. Selles postituses tagame ühenduse kliendi ja vastupidise puhverserveri vahel tasuta TLS-i abil (a.k.SSL) sertifikaat ettevõttelt LetsEncrypt. Soovitan teil tutvuda ülalmainitud postitusega põhiprintsiipide vastupidise puhverserveri kohta.

Eeldused

  1. Staatilise avaliku IP-ga server. Siin töötab Nginx.
  2. Taustserverid, mille kavandatud veebisait töötab HTTP kaudu
  3. Registreeritud domeeninimi. Kasutan ranvirslogit.com minu peamise domeeninimena ja need kaks veebisaiti asuvad FQDN-idel - WW1.ranvirslog.com ja ww2ranvirslog.com

Seadistamine

Nii et IP-aadressid on alates eelmisest korrast muutunud, kuna teen seda seadistust uuesti. Siin on uued IP-d ja hostinimed.

VM / hostinimi Avalik IP Privaatne IP Roll / funktsioon
ReverseProxy 68.183.214.151 10.135.127.136 TLS-i lõpp-punkt ja vastupidine puhverserver
veeb1 Puudub 10.135.126.102 Hostimine w1.ranvirslog.com

veebisait üle pordi 80 HTTP

veeb 2 Puudub 10.135.126.187 Hostimine

WW2.ranvirslog.com

veebisait üle pordi 80 HTTP

DNS-kirjed on seadistatud sellisena, et mõlemad veebisaidid (erinevad alamdomeenid) osutavad samale staatilisele avalikule IP-le. See on juhtumisi meie Nginxi puhverserveri IP-aadress:

Lindistus Väärtus
w1.ranvirslog.com 68.183.214.151
WW2.ranvirslog.com 68.183.214.151

Selleks, et meie vastupidine DNS töötaks krüptimata HTTP kaudu, lõime kaks faili kataloogis / etc / conf.d / nimega ww1.konf ja w2.konfigureerige igaüks järgmise konfiguratsiooniga:

/ etc / conf.pp / w1.konf

server
kuulata 80;
kuulama [::]: 80;
serveri_nimi WW1.ranvirslog.com;
asukoht /
puhverserveri_pääs http: // 10.135.126.102 /;
puhverserveri_puhver välja;
proxy_set_header X-Real-IP $ remote_addr;

/ etc / conf.d / ww2.konf

server
kuulata 80;
kuulama [::]: 80;
serveri_nimi WW2.ranvirslog.com;
asukoht /
puhverserveri_pääs http: // 10.135.126.187 /;
puhverserveri_puhver välja;
proxy_set_header X-Real-IP $ remote_addr;

Meie kasutatav operatsioonisüsteem on Ubuntu 18.04 LTS ja meil on eemaldatud fail / etc / nginx / saidid-lubatud / vaikimisi, nii et Nginx saab ülaltoodud konfiguratsioonide abil toimida puhtalt vastupidise DNS-iga.

Eesmärk

Kui vastupidine DNS (ja tagaveebisaidid) on juba töökorras ja töötab, on meie eesmärk installida mõlemale FQDN-ile üks TLS-i sertifikaat (see on ww1.ranvirslog.com ja WW2.ranvirslog.com) meie Nginxi vastupidises puhverserveris.

Liiklus mis tahes kliendi ja vastupidise puhverserveri vahel hakatakse krüpteerima, kuid tagurpidi puhverserveri ja taustserveri vaheline liiklus pole krüpteeritud. Kuid see on endiselt lõpmatult turvalisem variant kui HTTPS-i puudumine. Juhtudel, kui vastupidine puhverserver ja erinevad veebiserverid asuvad samal hostil, öelge, et kui kasutate Dockeri konteinereid kõigi sama VPS-i hostimiseks, siis isegi see krüptimata liiklus sisaldub ühes hostis.

Certboti installimine

Certbot on kliendiprogramm, mis töötab meie vastupidises puhverserveris ja peab LetsEncryptiga TLS-sertifikaadi üle läbirääkimisi. See tõestab LetsEncryptile, et serveril on tegelikult kontroll nende FQDN-ide üle, mille väidetavalt tal on kontroll. Me ei muretse selle pärast, kuidas Certbot seda teeb.

Traditsiooniliselt saate Certboti kasutada iseseisva tarkvarana, mis saab lihtsalt sertifikaadid (mis on põhimõtteliselt vaid pikad krüptovõtmed) ja salvestab selle serverisse. Kuid õnneks on enamiku operatsioonisüsteemide jaoks Nginxi, Apache'i ja muude tarkvarade jaoks kohandatud pistikprogrammid. Paigaldame Certboti koos Nginxi pistikprogrammiga. See konfigureerib Nginxi automaatselt äsja saadud võtmeid kasutama ja vabaneb ebaturvalistest reeglitest, näiteks 80-ndal HTTP-l kuulamine.

Kui kasutate Debiani põhiseid süsteeme, nagu ka minu puhul, kasutan Ubuntu 18.04 LTS, siis on install imelihtne.

$ sudo apt värskendus
$ sudo apt install tarkvara-omadused-ühine
$ sudo add-apt-repository universum
$ sudo add-apt-hoidla ppa: certbot / certbot
$ sudo apt värskendus
$ sudo apt installib python-certbot-nginx

Muud opsüsteemid, teie RedHat, Gentoo, Fedora, saavad järgida siin loetletud ametlikke juhiseid.

Kui olete Certboti installinud Nginxi pistikprogrammiga teie OS-i kombinatsiooni osas saame asuda asja kallale.

TLS-sertifikaatide hankimine

TLS-sertifikaadi esmakordseks saamiseks käivitage järgmine käsk:

$ sudo certbot --nginx

See läbib rea interaktiivseid küsimusi, nagu allpool näidatud:

  1. Sisestage oma e-posti aadress

Silumislogi salvestamine kausta / var / log / letsencrypt / letsencrypt.logi
Valitud pistikprogrammid: Authenticator nginx, Installer nginx
Sisestage e-posti aadress (kasutatakse kiireloomuliseks uuendamiseks ja turvateateks) (tühistamiseks sisestage "c"): [meiliga kaitstud]

  1. Nõustuge TOS-iga

Lugege teenusetingimusi aadressil https: // letsencrypt.org / dokumendid / LE-SA-v1.2. november-15-2017.pdf. ACME serveris registreerumiseks peate aadressil https: // acme-v02 nõustuma.api.laseb krüptida.org / kataloog
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(G) gree / (C) ancel:

  1. Vabatahtlik uudiskiri

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kas oleksite nõus jagama oma e-posti aadressi fondi Electronic Frontier, projekti Let’s Encrypt asutajapartneri ja Certboti arendava mittetulundusühinguga? Soovime teile saata meili meie veebi krüptimise töö, EFFi uudiste, kampaaniate ja digitaalse vabaduse toetamise viiside kohta.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y) es / (N) o: Y

  1. Seejärel tuvastab see teie serveris olevad domeeninimed ja kui soovite valida kõik domeenid, vajutage lihtsalt

Milliste nimede jaoks soovite HTTPS-i aktiveerida?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: w1.ranvirslog.com
2: WW2.ranvirslog.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Valige kõik komadega ja / või tühikutega eraldatud numbrid või jätke sisend tühjaks, et valida kõik kuvatud valikud (tühistamiseks sisestage 'c'):

  1. Suunage kõik TLS-i. Valisin valiku 2, et suunata kõik SSL-ile, kuid teie kasutusjuht võib erineda. Uute taustaprogrammide jaoks on ohutu valida 2. variant.

Valige, kas suunata HTTP-liiklus HTTPS-ile või mitte, eemaldades HTTP-juurdepääsu.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

1: ümbersuunamist pole - tehke veebiserveri konfiguratsioonis täiendavaid muudatusi.
2: ümbersuunamine - kõik taotlused suunatakse HTTPS-i juurdepääsu tagamiseks ümber. Valige see uute saitide jaoks või kui olete kindel, et teie sait töötab HTTPS-is. Selle muudatuse saate tagasi võtta, muutes veebiserveri konfiguratsiooni.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Valige sobiv number [1-2] ja seejärel sisestage sisestusklahv (tühistamiseks vajutage 'c'): 2

Kui kõik läks hästi, näitab see seda sõnumit ainult teie domeeninimede jaoks.

Palju õnne! Olete https: // ww1 edukalt lubanud.ranvirslog.com ja https: // ww2.ranvirslog.com Võite külastada FQDN-e ja märkida, et veebisaitidel on nüüd tabalukk, mis viitab sellele, et kõik on krüptitud.

Vaadake konfiguratsioonifaile

Kui vaatate meie varem loodud konfiguratsioonifaile, nimelt / etc / conf.pp / w1.conf ja / etc / conf.d / ww2.conf, märkate, et kõik reeglid “Kuula 80” on kadunud ja lisatud on paar uut rida, mis ütlevad serverile, et side peab olema krüptitud ning nimetatud krüptimise teostamiseks tuleb sertifikaatide ja võtmete asukoht.

Soovitan tungivalt vaadata konfiguratsioonifaile, kuna see võib õpetada ka sertifikaatide õigesti installimist ja konfiguratsioonifailide kirjutamist.

Sertifikaadi uuendamine

Tüüpilised sertifikaadid LetsEncrypt kehtivad 90 päeva ja enne nende aegumist peate neid uuendama. Uuenduse kõigepealt kuivkäivitamiseks võite kasutada Certboti, käivitades käsu:

$ sudo certbot uuendada --dry-run

Kui toiming õnnestub, näete järgmist teadet:

Palju õnne, kõik uuendused õnnestusid. Järgmisi sertifikaate on uuendatud:

/ etc / letsencrypt / live / ww1.ranvirslog.com / fullchain.pem (edu)
** DRY RUN: simuleerib 'certboti uuenemist' cert aegumise lähedal
** (Ülaltoodud testisertifikaate pole salvestatud.)

Nüüd saate lisada Croni töö, mis proovib uuendamist umbes iga nädal. Certbot ei uuenda sertifikaate, välja arvatud juhul, kui need selleks tegelikult on, nii et te ei pea muretsema. Tegeliku uuendamise käsk on:

$ certboti uuendamine

Lisage see juurte croni tööks, kasutades:

$ sudo crontab -e

Valige järgmises viites oma lemmikredaktor (kui te pole kindel, valige Nano) ja lisage nüüd avatud faili lõppu järgmised read:


# Näiteks saate käivitada kõigi oma kasutajakontode varundamise
# kell 5 a.m iga nädal koos:
# 0 5 * * 1 tar -zcf / var / backups / home.tgz / home /
#
# Lisateavet leiate crontabi (5) ja croni (8) käsiraamatutelt
#
# m h dom mon dow käsk
* 2 * * 2 certboti uuendamine

See käivitab certboti uuendamise käsu kell 2 hommikul mis tahes suvalisel minutil, iga nädala teisel päeval.

Järeldus

Kui olete TLS-i sertifikaatide uus kasutaja, võib HSTS-iga sarnaste katsetamine olla riskantne. Kuna need muutused on pöördumatud. Kuid kui soovite siiski minna küüliku turvalisuse auku, võin soojalt soovitada Troy Hunti ajaveebi, mis on selle kirjutamise peamine inspiratsioon.

WinMouse võimaldab teil kohandada ja parandada hiirekursori liikumist Windowsi arvutis
Kui soovite oma hiirekursori vaikefunktsioone paremaks muuta, kasutage vabavara WinMouse. See lisab rohkem funktsioone, mis aitavad teil alandlikust h...
Hiire vasakklõps nupp ei tööta Windows 10-s
Kui kasutate oma sülearvuti või lauaarvutiga spetsiaalset hiirt, kuid hiire vasakklõps nupp ei tööta mingil põhjusel operatsioonisüsteemis Windows 10/...
Kursor hüppab või liigub juhuslikult Windows 10-s kirjutamise ajal
Kui leiate, et hiire kursor hüppab või liigub Windowsi sülearvutisse või arvutisse kirjutades automaatselt, juhuslikult, võivad mõned neist soovituste...