Organizować coś
Tak więc adresy IP zmieniły się od ostatniego razu, ponieważ ponownie wykonuję tę konfigurację. Oto nowe IPS i nazwy hostów.
VM/nazwa hosta | Publiczne IP | Prywatny IP | Rola/funkcja |
Odwrotna proksja | 68.183.214.151 | 10.135.127.136 | TLS Punkt zakończenia i odwrotny serwer proxy |
Web1 | Nie dotyczy | 10.135.126.102 | Hosting WW1.Ranvirslog.com Witryna nad portem 80 HTTP |
Web2 | Nie dotyczy | 10.135.126.187 | Hosting WW2.Ranvirslog.com Witryna nad portem 80 HTTP |
Rekordy DNS są konfigurowane jako takie witryny (różne subdomeny) wskazują na ten sam statyczny publiczny adres IP. Zdarza się to nasz adres IP naszego Nginx Reverse Proxy:
Nagranie | Wartość |
WW1.Ranvirslog.com | 68.183.214.151 |
WW2.Ranvirslog.com | 68.183.214.151 |
Aby nasze odwrotne DN działały nad niezaszyfrowanym HTTP, utworzyliśmy dwa pliki w /etc /conf.D/ nazwane WW1.Conf i WW2.Zgoda z następującą konfiguracją:
/etc/conf.D/WW1.conf
serwer
Posłuchaj 80;
Posłuchaj [::]: 80;
Server_name WW1.Ranvirslog.com;
Lokalizacja /
proxy_pass http: // 10.135.126.102/;
Proxy_Buffering Off;
proxy_set_header x-real-ip $ remote_addr;
/etc/conf.D/WW2.conf
serwer
Posłuchaj 80;
Posłuchaj [::]: 80;
Server_name WW2.Ranvirslog.com;
Lokalizacja /
proxy_pass http: // 10.135.126.187/;
Proxy_Buffering Off;
proxy_set_header x-real-ip $ remote_addr;
System operacyjny, którego używamy, to Ubuntu 18.04 LTS i mamy REMOVED plik/etc/nginx/witryny-obsługujący/domyślny, więc nginx może działać wyłącznie jako odwrotne DNS za pomocą konfiguracji pokazanych powyżej.
Cel
Z odwrotnymi DNS (i stronami backendowymi) już uruchomionymi, naszym celem jest zainstalowanie pojedynczego certyfikatu TLS dla obu FQDN (to jest WW1.Ranvirslog.com i WW2.Ranvirslog.com) na naszym proxy Nginx Reverse.
Ruch między dowolnym klientem a odwrotną proxy będzie zaszyfrowana, ale ruch między odwrotną serwerami proxy a serwerami zaplecza nie jest szyfrowany. Jest to jednak nadal nieskończenie bezpieczna opcja niż w ogóle nie posiadanie HTTPS. W przypadkach, w których odwrotny serwer proxy i różne serwery Web znajdują się na tym samym hoście, powiedzmy, że jeśli używasz kontenerów Docker do hostowania wszystkich na tym samym VPS, nawet ten niezaszyfrowany ruch jest zawarty na jednym hoście.
Instalowanie Certbot
CertBot to program klientów, który będzie działał na naszym odwrotnym serwerze proxy i negocjuje certyfikat TLS z LetsEncrypt. Udowodni to, że serwer ma w rzeczywistości kontrolę nad FQDN, że ma kontrolę nad kontrolą. Nie będziemy się martwić, jak to robi Certbot.
Tradycyjnie możesz użyć CertBot jako samodzielnego oprogramowania, które po prostu otrzyma certyfikaty (które są w zasadzie tylko długie klawisze kryptograficzne) i zapisać je na serwerze. Ale na szczęście w przypadku większości systemów operacyjnych istnieją niestandardowe wtyczki dla Nginx, Apache i inne oprogramowanie. Zainstalujemy CertBot z wtyczką Nginx. To automatycznie skonfiguruje Nginx, aby używać nowo uzyskanych kluczy i pozbyć się niepewnych zasad, takich jak słuchanie HTTP na porcie 80.
Jeśli używasz systemów opartych na debian, podobnie jak w moim przypadku używam Ubuntu 18.04 LTS, wtedy instalacja jest prosta.
Aktualizacja $ sudo apt
$ sudo apt instontuj oprogramowanie-properties-common
$ sudo add-apt-repozytory wszechświat
$ sudo add-apt-repozytory PPA: certbot/certbot
Aktualizacja $ sudo apt
$ sudo apt Zainstaluj Python-Certbot-Nginx
Inne systemy operacyjne, twój Redhat, Gentoo, Fedora może postępować zgodnie z oficjalnymi instrukcjami wymienionymi tutaj.
Po zainstalowaniu CertBot z wtyczką Nginx W przypadku kombinacji systemu operacyjnego możemy dotrzeć do biznesu.
Uzyskanie certyfikatów TLS
Aby uzyskać certyfikat TLS po raz pierwszy, uruchom następujące polecenie:
$ sudo certbot -nnginx
Będzie to przebiegać przez serię interaktywnych pytań, jak pokazano poniżej:
Oszczędzanie logowania debugowania do /var/log/limsecrrypt/LetsEncrypt.dziennik
Wybrane wtyczki: Authenticator Nginx, instalator Nginx
Wprowadź adres e -mail (używany do pilnej odnowienia i powiadomień o bezpieczeństwie) (wprowadź „C”, aby anulować): [email protected]
Przeczytaj Warunki usługi pod adresem https: // LetsEncrypt.org/dokumenty/le-sa-v1.2 listopada 15-2017.PDF. Musisz się zgodzić, aby zarejestrować się na serwerze ACME na stronie https: // acme-v02.API.LetsEncrypt.org/katalog
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A) Gree/(c) Ancel: a
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Czy byłbyś skłonny udostępnić swój adres e-mail z Electronic Frontier Foundation, partnerem założycielem projektu Let's Encrypt i organizacji non-profit, która opracowuje CertBot? Chcielibyśmy wysłać Ci e -mail o naszej pracy szyfrowanie sieci, wiadomości, kampanii i sposobów wspierania cyfrowej wolności.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y) es/(n) o: y
Do jakich nazw chcesz aktywować HTTPS?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: WW1.Ranvirslog.com
2: II wojna światowa.Ranvirslog.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wybierz odpowiednie liczby oddzielone przez przecinki i/lub przestrzenie lub pozostaw wejście puste, aby wybrać wszystkie pokazane opcje (wprowadź „C”, aby anulować):
Wybierz, czy przekierować ruch HTTP do HTTPS, usuwając dostęp HTTP.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Brak przekierowania - nie dokonuj dalszych zmian w konfiguracji WebServer.
2: Przekierowanie - Złóż wszystkie żądania przekieruj, aby uzyskać dostęp HTTPS. Wybierz to dla nowych witryn lub jeśli masz pewność, że Twoja witryna działa na HTTPS. Możesz cofnąć tę zmianę, edytując konfigurację serwera WWW.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wybierz odpowiedni numer [1-2], a następnie [Enter] (naciśnij „C”, aby anulować): 2
Jeśli wszystko poszło dobrze, pokaże ci tę wiadomość, po prostu dla nazwisk domeny zamiast tego.
Gratulacje! Z powodzeniem włączyłeś https: // ww1.Ranvirslog.com i https: // ww2.Ranvirslog.com Możesz odwiedzić fqdns i zauważyć, że strony internetowe mają teraz znak kłódki sugerujący, że wszystko jest szyfrowane.
Spójrz na pliki konfiguracyjne
Jeśli wyświetlisz pliki konfiguracyjne, które utworzyliśmy wcześniej, a mianowicie /etc /conf.D/WW1.conf i /etc /conf.D/WW2.Conf, zauważysz, że wszystkie reguły „słuchaj 80” zniknęły i dodano kilka nowych wierszy Tell Server, że komunikacja musi zostać zaszyfrowana, a lokalizacja certyfikatów i kluczy do wykonania wspomnianego szyfrowania.
Zdecydowanie zalecam przeglądanie plików konfiguracyjnych, ponieważ może to również nauczyć, jak poprawnie instalować certyfikaty i pisać pliki konfiguracyjne.
Odnowienie certyfikacji
Typowe certyfikaty LetsEncrypt są ważne przez 90 dni i zanim wygasną, musisz je odnowić. Możesz użyć certbot do najpierw suchego przedłużenia, uruchamiając polecenie:
$ sudo certbot odnowienie-Dry-run
Jeśli operacja się powiedzie, zobaczysz następującą wiadomość:
Gratulacje, wszystkie odnowienia się powiodły. Ponownie odnowiono następujące certyfikaty:
/etc/limsecrrypt/na żywo/ww1.Ranvirslog.com/Fullchain.PEM (sukces)
** Suchy bieg: symulowanie „Certbot Renew” blisko wygaśnięcia Cert Extiry
** (powyższe certyfikaty testowe nie zostały zapisane.)
Teraz możesz dodać pracę cron, która będzie próbować odnawiać co tydzień. Certbot nie odnowią certyfikatów, chyba że są one tak naprawdę należne, więc nie musisz się martwić. Poleceniem faktycznego odnowienia jest:
$ CERTBOT Renew
Dodaj go do pracy Cron Root, używając:
$ sudo crontab -e
W poniższej monitu wybierz swojego ulubionego edytora (wybierz Nano, jeśli nie masz pewności) i dodaj następujące wiersze na końcu otwartego pliku:
…
# Na przykład możesz uruchomić kopię zapasową wszystkich kont użytkowników
# o 5 A.m co tydzień z:
# 0 5 * * 1 TAR -ZCF/var/Backups/Home.TGZ /Strona główna /
#
# Aby uzyskać więcej informacji, zobacz strony ręczne Crontab (5) i Cron (8)
#
# M H Dom Mon Dow Command
* 2 * * 2 Certbot Renew
To uruchomi polecenie Certbot Renew na 2 rano w dowolnej losowej minucie, drugiego dnia każdego tygodnia.
Jeśli jesteś nowy w certyfikatach TLS, eksperymentowanie z takimi rzeczami może być ryzykowne. Ponieważ zmiany te są nieodwracalne. Jeśli jednak chcesz zejść z króliczej dziury bezpieczeństwa, mogę gorąco polecam blog Troy Hunt, który jest jedną z głównych inspiracji tego zapisu.