Jak włączyć HTTPS dla pamięci podręcznej lakier

Jak włączyć HTTPS dla pamięci podręcznej lakier

Pamięć podręczna lakieru brakuje rodzimego poparcia SSL/TLS i inne protokoły związane z portem 443. Jeśli używasz Pamięć podręczna lakieru Aby zwiększyć wydajność aplikacji internetowej, musisz zainstalować i skonfigurować kolejny oprogramowanie o nazwie A SSL/TLS Proxy z wypowiedzeniem, aby współpracować Pamięć podręczna lakieru umożliwić Https.

Zaczep jest bezpłatnym open source, opartym na libevie i skalowalnym proxy SSL/TLS zaprojektowanym Pamięć podręczna lakieru, który obecnie działa na Linux, OpenBSD, FreeBSD i Macosx. Kończy połączenia TLS/SSL, słuchając na porcie 443 (domyślny port dla Https połączenia) i przekazuje niezaszyfrowany ruch Pamięć podręczna lakieru, Powinien jednak działać z innymi backendami.

To obsługuje TLS1.2 I TLS1.3 i dziedzictwo TLS 1.0/1.1, wsparcie Alpn (Negocjacje protokołu warstwy aplikacji) I NPN (Następne negocjacje protokołu) Do HTTP/2, Protokół proxy sygnalizujący IP/port klienta do zaplecza, podłączenia gniazda domeny unix z pochodzeniem, Sni (Wskazanie nazwy serwera), z certyfikatami wieloznacznymi i bez. Dodatkowo działa dobrze w przypadku dużych instalacji, które wymagają 15 000 Słuchanie gniazd i 500 000 certyfikaty.

Jako kontynuacja naszych dwóch poprzednich artykułów na temat instalacji Pamięć podręczna lakieru Do Nginx I Apache Serwery HTTP, ten przewodnik pokazuje, aby włączyć Https Do Pamięć podręczna lakieru za pomocą Hitch TLS Proxy NA Centos/Rhel 8.

Logiczny schemat naszej konfiguracji

Ten przewodnik zakłada, że ​​zainstalowałeś Lakier Do Nginx Lub Apache Serwer WWW, w przeciwnym razie patrz:

  • Jak zainstalować pamięć podręczną lakieru 6 dla serwera WWW Nginx na Centos/Rhel 8
  • Jak zainstalować pamięć podręczną lakieru 6 dla Apache Web Server na Centos/Rhel 8

Krok 1: Zamontować zaczep na centro/RHEL 8

1. Zaczep pakiet jest dostarczany w Epel (Dodatkowe pakiety dla Enterprise Linux) Repozytorium. Aby go zainstalować, najpierw włącz Epel w systemie, a następnie zainstaluj paczkę. Jeśli nie masz Openssl Zainstalowany pakiet, zainstaluj również.

# DNF Zainstaluj Epel-Release # DNF Instaluj Hitch OpenSSL 
Zainstaluj zaczep na Centos 8

2. Po zakończeniu instalacji pakietu będziesz musiał skonfigurować Pamięć podręczna lakieru pracować Zaczep. Musisz także skonfigurować Zaczep używać swojego SSL/TLS certyfikaty i Lakier jak Backend. Główny plik konfiguracyjny Hitch znajduje się pod adresem /itp./Hitch/Hitch.conf, co wyjaśniono poniżej.

Krok 2: Konfigurowanie pamięci podręcznej lakier

3. Następnie włącz Lakier Aby wysłuchać dodatkowego portu (8443 w naszym przypadku) za pomocą PEŁNOMOCNIK Wsparcie protokołu, w zakresie komunikacji z Zaczep.

Więc otwórz lakier Systemd plik serwisowy do edycji.

# SystemCtl EDIT -FULLL LAMING 

Poszukaj linii ExecStart i dodaj dodatkowe -A flaga z wartością 127.0.0.1: 8443, proxy. Używając wartości 127.0.0.1: 8443 oznacza, że ​​lakier zaakceptuje tylko połączenie wewnętrzne (z procesów działających na tym samym serwerze i.W tym przypadku zaczep), ale nie połączenia zewnętrzne.

ExecStart =/usr/sbin/locnishd -a: 80 -a 127.0.0.1: 8443, proxy -f/etc/lannish/default.VCL -s Malloc, 256m 
Ustaw lakier

Zapisz plik, a następnie uruchom ponownie usługę, aby zastosować najnowsze zmiany.

# Systemctl restart lakier 

Krok 3: Uzyskanie certyfikatów SSL/TLS

4. W tej sekcji wyjaśnimy, jak utworzyć SSL/TLS pakiet certyfikatu, który ma być używany pod Zaczep. W przypadku tego przewodnika wyjaśnimy różne opcje korzystania z certyfikatu samowystarczalnego, certyfikatu handlowego lub jednego z Zaszypujmy.

Aby utworzyć samowystarczalny certyfikat (którego powinieneś używać tylko w lokalnym środowisku testowym), możesz użyć Openssl narzędzie.

# mkdir/etc/ssl/tecmint.LAN # cd/etc/ssl/tecmint.LAN/ # Openssl req -x509 -nodes -Days 365 -Newkey RSA: 2048 -Keyout Tecmint.Lan.Klucz -out Tecmint.Lan.crt 

Następnie utwórz pakiet certyfikatu i klucza w następujący sposób.

# Cat Tecmint.CRT Tecmint.Klucz> Tecmint.pem 

Notatka: Do użytku produkcyjnego możesz albo kupić certyfikat z reklamy Urząd certyfikatu (Ca) lub pobrać bezpłatny, zautomatyzowany i w pełni uznany certyfikat od Zaszypujmy. Następnie utwórz pakiet PEM.

Jeśli kupiłeś certyfikat z reklamy Ca, Musisz połączyć klucz prywatny, certyfikat i pakiet CA, jak pokazano.

# Przykład CAT.com.kluczowy przykład.com.Przykład CRT.Com-Ca-Bundle.crt>/etc/ssl/przykład.com.pem 

Dla Zaszypujmy, certyfikat, klucz prywatny i pełny łańcuch będą przechowywane pod /etc/limsecrrypt/na żywo/przykład.com/, Więc utwórz pakiet, jak pokazano.

# cat/etc/limsecrrypt/na żywo/przykład.com/Fullchain.PEM/etc/LetsEncrypt/Live/przykład.com/privey.PEM>/etc/limsecrrypt/na żywo/przykład.com/przykład.com_bundle.pem 

Krok 4: Konfigurowanie i rozpoczęcie zaczepu

5. Następnie skonfiguruj Lakier jako backend dla Zaczep i określ SSL/TLS pliki certyfikatów do użycia Https, w Zaczep Główny plik konfiguracyjny, otwórz go do edycji.

# vi/etc/zaczep/zaczep.conf 

frontend Sekcja określa adresy IP i Port Hitch będzie słuchać. Domyślną konfiguracją jest słuchanie wszystkich IPv4 I IPv6 Interfejsy dołączone na serwerze i działają na porcie 443 i obsługa przychodzącego Https prośby, przekazując je do Lakier.

Zmień domyślnie Backend Port proxy od 6086 Do 8443 (port używany do przekazywania żądań do Lakier) w Zaczep plik konfiguracyjny, za pomocą Backend parametr. Podaj także plik certyfikatu za pomocą PEM PEM parametr jak pokazano.

backend = "[127.0.0.1]: 8443 " #pem-dir ="/etc/pki/tls/private "PEM-file ="/etc/ssl/tecminint.LAN/TECMINT.PEM " 
Skonfiguruj zaczep jako serwer proxy SSL/TLS dla lakieru

Zapisz plik i zamknij go.

6. Teraz zacznij zaczep serwis i umożliwia automatycznie uruchamianie w rozruchu systemowym. Zauważ, że --Teraz Przełącz się, gdy jest używany z enable, uruchamia również usługę SystemD, a następnie sprawdź status, aby sprawdzić, czy jest ona uruchomiona w następujący sposób.

# SystemCtl Enable -Teraz Hitch # Systemctl Status Hitch 
Sprawdź status zaczepu

7. Zanim przejdziesz do sprawdzenia, czy Twoja strona internetowa/aplikacja jest teraz uruchomiona Https, Musisz zezwolić Https Port serwisowy 443 w zaporze, aby umożliwić żądania przeznaczone dla tego portu na serwerze, aby przejść przez zaporę ogniową.

um 

Krok 5: Testowanie zakończenia SSL/TLS z konfiguracją Larnish Cache-Hitch

8. Teraz nadszedł czas, aby przetestować Lakierka pamięci podręcznej organizować coś. Otwórz przeglądarkę internetową i użyj adresu IP swojej domeny lub serwera do nawigacji Https.

https: // www.przykład.com lub https: // server_ip/ 

Po załadowaniu strony indeksu aplikacji internetowej sprawdź Http nagłówki potwierdzające, że treść jest obsługiwana za pośrednictwem Pamięć podręczna lakieru.

Aby to zrobić, kliknij prawym przyciskiem myszy na załadowanej stronie internetowej, wybierz Sprawdzać Z listy opcji otwierania narzędzi programistycznych. Następnie kliknij Sieć Tab i Przeładować Strona, a następnie wybierz żądanie wyświetlania nagłówków HTTP, jak podkreślono na poniższym zrzucie ekranu.

Sprawdź konfigurację HTTPS na pamięci podręcznej lakier

Krok 6: Przekierowanie HTTP do HTTPS w pamięci podręcznej lakier

9. Aby uruchomić witrynę internetową Https Tylko musisz przekierować wszystkie Http ruch do Https. Możesz to zrobić, dodając następującą konfigurację w pliku konfiguracyjnym zaczepu.

# vi/etc/zaczep/zaczep.conf 

Najpierw dodaj linię import std; tuż poniżej VLC 4.0;, Następnie poszukaj vlc_recv podprogram, który jest pierwszym podprogramem VCL wykonanym natychmiast po Pamięć podręczna lakieru przeanalizował żądanie klienta na podstawową strukturę danych. Tutaj możemy zmodyfikować nagłówki żądań i wykonać syntezator w celu przekierowania żądań klienta.

Zmodyfikuj to, aby wyglądało tak.

sub vcl_recv if (std.port (serwer.IP) != 443) set req.http.lokalizacja = "https: //" + req.http.host + req.URL; return (syntezator (301));  

Zauważ, że PEŁNOMOCNIK Protokół umożliwia Lakier zobaczyć Hitch's Port słuchania 443 z serwer.ip zmienny. Więc linia Std.port (serwer.IP) Zwraca numer portu, na którym otrzymano połączenie klienta.

Jeśli port nie jest 443 Do Https (Jak sprawdzono (Std.port (serwer.IP) != 443)), podprogram ustawia nagłówek lokalizacji żądania HTTP (Ustaw req.http.Lokalizacja) na bezpieczne żądanie (”https: //" + req.http.gospodarz + req.URL) Po prostu poproszenie przeglądarki internetowej o załadowanie Https Wersja strony internetowej (i.Przekierowanie URL E).

Lokalizacja Nagłówek zostanie wysłany do VCL_SYNTH podprogram (który nazywa się za pomocą Return (Synth (301))) z kodem stanu HTTP 301 (Poruszył się na stałe).

10. Następnie dodaj następujące VCL_SYNTH podprogram (Jednym z wielu przypadków zastosowań jest przekierowanie użytkowników), aby przetworzyć powyższy syntezator.

sub vcl_syntth if (resp.status == 301) set resp.http.lokalizacja = req.http.Lokalizacja; ustanowienie odpowiednich.Status = 301; zwrot (dostarczenie);  

Sprawdza, czy status odpowiedzi jest 301, Nagłówek lokalizacji HTTP w odpowiedzi jest ustawiony na nagłówek lokalizacji HTTP w żądaniu, które w rzeczywistości jest przekierowaniem do HTTPS i wykonuje akcję dostarczania.

Dostarczanie akcji buduje odpowiedź z reakcją backenda, przechowuje odpowiedź w pamięci podręcznej i wysyła ją do klienta.

Skonfiguruj Hitch, aby przekierować HTTP na HTTPS

Zapisz plik i zamknij go.

11. Jeszcze raz zastosuj nowe zmiany w konfiguracji lakieru, ponownie uruchamiając usługę. Następnie użyj narzędzia liniowego Curl, aby potwierdzić przekierowanie od Http Do Https.

# Systemctl restart lakier # curl -i http: // eaxmple.com/ 
Sprawdź przekierowanie HTTP do HTTPS

Z przeglądarki odpowiedź jest również taka sama, jak pokazano na poniższym zrzucie ekranu.

Sprawdź przekierowanie HTTP do HTTPS w przeglądarce

Mamy nadzieję, że do tej pory wszystko działało dobrze. Jeśli nie, upuść komentarz lub pytania za pośrednictwem poniższego formularza opinii. W przypadku dowolnej zaawansowanej opcji konfiguracji przejdź do dokumentacji pamięci podręcznej lakieru i dokumentacji zaczepów.