Eeldused
- Staatilise avaliku IP-ga server. Siin töötab Nginx.
- Taustserverid, mille kavandatud veebisait töötab HTTP kaudu
- 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
serverkuulata 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
serverkuulata 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 --nginxSee läbib rea interaktiivseid küsimusi, nagu allpool näidatud:
- 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]
- 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:
- 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
- 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'):
- 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-runKui 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 uuendamineLisage see juurte croni tööks, kasutades:
$ sudo crontab -eValige 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.