W tym krótkim poradniku pokażę jak w prosty sposób uzyskać szyfrowane połączenie w Google Cloud bez instalacji certyfikatu SSL na wirtualnej maszynie. Instalowanie certyfikatu SSL bezpośrednio na maszynie bywa problematyczne. Trzeba wykonać instalację a następnie ustawić CRON aby automatycznie odnawiał certyfikat co 3 miesiące. Instalacja certyfikatu SSL może się różnić w zależności od serwera czy wykorzystywanego systemu operacyjnego.

Te wszystkie problemy można sprytnie ominąć wykorzystując certyfikat SSL zarządzany przez Google. Aby móc zainstalować taki certyfikat musimy skorzystać z Load Balancera. Wykorzystanie systemu równoważenia obciążeń w Google Cloud niesie szereg zalet a dodatkowo możemy w łatwy sposób skorzystać z Google CDN w obrębie całej witryny.

Krok 0: Utworzenie maszyny wirtualnej

Do celów tutorialu stworzę maszynę wirtualną, dla której chcę włączyć szyfrowane połączenie za pomocą Google SSL. Jeżeli chcesz ustawić certyfikat SSL dla istniejącej maszyny to oczywiście nie musisz wykonywać tego kroku i możesz od razu przejść do kroku 1.

Nasza testowa maszyna wirtualna to zwykły serwer, który poprawnie realizuje połączenie za pomocą protokołu HTTP. To niezbędne minimum aby móc łatwo zweryfikować czy SSL działa. Instaluję serwer Apache aby tylko móc wyświetlić domyślną stronę testową:

Domyślna strona internetowa widoczna po poprawnym zainstalowaniu serwera Apache

Zobacz jak zainstalować serwer Apache we wprowadzającym artykule: Co to jest Apache.

Krok 1: Utworzenie grupy instancji

Właściwym pierwszym krokiem będzie utworzenie Grupy instancji w Google Cloud a następnie przypisanie do niej naszego serwera. Grupa instancji to zbiór instancji maszyn wirtualnych, którymi można zarządzać jako pojedynczą jednostką.

Grupa instancji wchodzi w skład usługi Compute Engine i oferuje ona dwa rodzaje grup instancji maszyn wirtualnych, zarządzane i niezarządzane. Nas na ten moment interesują te drugie. Klikam w Utwórz grupę instancji i wybieram niezarządzane grupy instancji:

Tworzenie grupy instancji

Jeżeli prawidłowo wybraliśmy region to już w tym monecie będziemy mogli przypisać Maszynę wirtualną, która ma być objęta certyfikatem SSL.

Krok 2: Tworzenie równoważenia obciążenia

Przechodzę do usług sieciowych i klikam w Utwórz system równoważenia obciążenia. Wybieram Równoważenie obciążenia HTTP(S). Tak jak pokazałem na zrzucie chcemy równoważyć obciążenie „z Internetu do moich maszyn wirtualnych lub usług bezserwerowych” i wybieramy tryb Globalny system równoważenia obciążenia HTTP(S) (klasyczny).

Tworzenie systemu równoważenia obciążenia

Krok 2a: Konfiguracja backendu

Na kolejnych ilustracją pokażę moją przykładową konfigurację backendu:

Nazwa, typ i protokół backendu
Grupa instancji i numery portów backendu

Ostatnią rzeczą przed zapisaniem zmian będzie utworzenie kontroli stanu (ang. healthcheck). Wybieramy protokół HTTP lub TCP.

Tworzenie kontroli stanu – healthcheck

Kontrola stanu będzie polegała na tym, że co 60 sekund system równoważenia obciążenia będzie sprawdzał czy nasz backend (czyli grupa instancji a w tym konkretnym przypadku jeden serwer) odbiera zapytania i wysyła poprawną odpowiedź. W przypadku korzystania z jednej maszyny to i tak nie ma znaczenia ale musimy utworzyć kontrolę stanu aby utworzyć load balancer.

CDN i kontrola stanu

W ostatnich polach decydujemy czy chcemy wykorzystać Google CDN. To bardzo przydatna usługa CDN i Cache, która dodatkowo poprawi szybkość działania naszego serwisu. Czytaj więcej o CDN.

Krok 2b: Konfiguracja frontendu

W konfiguracji frontendu określamy adres IP, port i protokół. Ten adres IP będzie pełnił funkcję adresu IP frontendu dla żądań naszych klientów. To w tym punkcie faktycznie tworzymy certyfikat SSL i przypisujemy domenę.

Konfiguracja frontendu

Certyfikat tak jak adres IP można wybrać po jego uprzednim utworzeniu. Klikamy w utwórz adres IP a następnie w utwórz certyfikat:

Na sam koniec możemy wyświetlić podsumowanie konfiguracji i wcisnąć przycisk Utwórz.

Podsumowanie konfiguracji systemu równoważącego obciążenie.

Krok 3: Aktualizacja adresu IP

Na nasz testowy serwer nie wskazywała żadna domena, dlatego wystarczy w strefie DNS domeny zaktualizować rekord A aby wskazywał na adres IP frontendu. Jeżeli domena będzie wskazywać na adres IP frontendu, po kilku godzinach certyfikat na pewno zacznie działać i zgodnie z konfiguracją load balancer będzie przekierowywał ruch HTTP na HTTPS.

Jeżeli się niecierpliwimy, możemy odnaleźć certyfikat SSL w wyszukiwarce usług Google Cloud i na bieżąco śledzić jego stan:

Szczegóły certyfikatu SSL

Stan PROVISIONING oznacza, że certyfikat zarządzany przez Google jest tworzony dla podanej domeny. Google Cloud współpracuje z urzędem certyfikacji, aby podpisać certyfikat. Udostępnienie certyfikatu zarządzanego przez Google trwa zazwyczaj ok. 60 minut. Jeżeli domena ma status FAILED_NOT_VISIBLE to znowu – wystarczy tylko poczekać i takie statusy są jak najbardziej naturalne.

Wpisując w adres przeglądarki naszą domenę, powinniśmy być przekierowani na HTTPS. W szczegółach certyfikatu powinniśmy zobaczyć wydawcę: GTS CA 1D4.

Podsumowanie

Jak widać wykorzystanie darmowego certyfikatu SSL zarządzanego przez Google to chyba najprostszy sposób na obsługę ruchu HTTPS we własnych hostingach w Google Cloud. Brak konieczności logowania się do SSH i korzystania z konsoli to już dla wielu spora zachęta aby wykorzystać to rozwiązanie. Aktualizowanie i instalowanie paczek niepotrzebnie zużywa miejsce na serwerze a konieczność własnoręcznego ustawiania odnawiania certyfikatu i konfigurowania serwera pochłania nasz cenny czas i może być stresujące kiedy ograniczamy się do wklepywania komend zamieszczonych w jakimś tutorialu.

Posiadając grupę instancji i load balancer otwierają się przed nami nowe możliwości skalowania i zarządzania naszym serwisem hostowanym w Google Cloud. Możemy włączyć Google CDN jednym kliknięciem a kiedy nadejdzie taka potrzeba z łatwością dodamy kolejne maszyny do naszej grupy instancji aby obsłużyć większy ruch lub zapewnić większą dostępność naszej strony internetowej.

Oceń artykuł na temat: Jak włączyć certyfikat SSL w Google Cloud?
Średnia : 4.9 , Maksymalnie : 5 , Głosów : 7