Szczegółowy poradnik dotyczący konfiguracji certyfikatu SSL/TLS na serwerze Tomcat.
Jednym z kluczowych aspektów zabezpieczania serwera Tomcat jest właściwe skonfigurowanie certyfikatu SSL, co umożliwia dostęp do aplikacji internetowej za pomocą protokołu HTTPS.
Istnieje szereg metod, aby to osiągnąć.
- Można zakończyć szyfrowanie SSL na poziomie load balancera.
- Można zaimplementować SSL za pośrednictwem sieci CDN (Content Delivery Network).
- Można wykorzystać serwery internetowe, takie jak Apache czy Nginx, umieszczając je przed Tomcatem i tam konfigurując SSL.
Jeżeli jednak żadna z powyższych opcji nie jest w Twoim przypadku stosowana, lub potrzebujesz wdrożyć SSL bezpośrednio w Tomcat, poniższe instrukcje będą bardzo przydatne.
W tym artykule przejdziemy przez następujące kroki:
- Wygenerowanie CSR (Certificate Signing Request), czyli żądania podpisania certyfikatu.
- Zaimportowanie certyfikatu do pliku magazynu kluczy.
- Aktywacja SSL w konfiguracji Tomcat.
- Ustawienie protokołu TLS.
- Zmiana portu nasłuchiwania Tomcat na 443.
- Przeprowadzenie testu podatności SSL serwera Tomcat.
Zacznijmy…
Przygotowanie do wdrożenia certyfikatu SSL/TLS
Pierwszym krokiem jest wygenerowanie CSR, który następnie zostanie podpisany przez urząd certyfikacji. Do zarządzania certyfikatami posłużymy się narzędziem keytool.
- Zaloguj się do serwera, na którym działa Tomcat.
- Przejdź do katalogu instalacyjnego Tomcata.
- Stwórz nowy folder o nazwie „ssl”.
- Uruchom polecenie, które utworzy magazyn kluczy.
keytool -genkey -alias nazwadomeny -keyalg RSA -keysize 2048 -keystore nazwapliku.jks
Powyższe polecenie zawiera dwie zmienne, które warto dostosować do własnych potrzeb:
- Alias – zaleca się, aby był on zrozumiały, co ułatwi identyfikację certyfikatu w przyszłości. Proponujemy użycie nazwy domeny.
- Nazwa pliku – również warto, aby była powiązana z nazwą domeny.
Przykładowy proces:
[[email protected] ssl]# keytool -genkey -alias bloggerflare -keyalg RSA -keysize 2048 -keystore bloggerflare.jks Wprowadź hasło do magazynu kluczy: Wprowadź hasło ponownie: Jakie jest Twoje imię i nazwisko? [Nieznane]: bloggerflare.com Jaka jest nazwa Twojej jednostki organizacyjnej? [Nieznane]: Blogging Jaka jest nazwa Twojej organizacji? [Nieznane]: Geek Flare Jaka jest nazwa Twojego miasta lub miejscowości? [Nieznane]: Jaka jest nazwa Twojego stanu lub prowincji? [Nieznane]: Jaki jest dwuliterowy kod kraju dla tej jednostki? [Nieznane]: Czy CN=bloggerflare.com, OU=Blogging, O=Geek Flare, L=Nieznane, ST=Nieznane, C=Nieznane jest poprawne? [nie]: tak Wprowadź hasło do klucza dla <bloggerflare> (RETURN jeśli takie samo jak hasło do magazynu kluczy): [[email protected] ssl]#
Zwróć uwagę na pytanie o imię i nazwisko. W tym przypadku nie chodzi o Twoje dane osobowe, ale o nazwę domeny, którą chcesz zabezpieczyć.
Po podaniu wszystkich niezbędnych informacji plik magazynu kluczy zostanie utworzony w bieżącym katalogu roboczym.
Kolejnym krokiem jest wygenerowanie CSR przy użyciu nowo utworzonego magazynu kluczy, za pomocą następującego polecenia:
keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks
Wygenerowany CSR należy przekazać do urzędu certyfikacji, aby został podpisany. Można skorzystać z bezpłatnych dostawców certyfikatów do celów testowych, ale dla produkcji zalecane jest użycie certyfikatu komercyjnego.
Po otrzymaniu podpisanego certyfikatu, możemy przystąpić do jego importowania do magazynu kluczy, używając następujących poleceń:
- Import certyfikatu głównego, dostarczonego przez urząd certyfikacji:
keytool -importcert -alias root -file root -keystore bloggerflare.jks
- Import certyfikatu pośredniego:
keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks
Uwaga: bez zaimportowania certyfikatów głównego i pośredniego, import certyfikatu domeny do magazynu kluczy nie będzie możliwy. Jeśli posiadasz więcej niż jeden certyfikat pośredni, musisz zaimportować je wszystkie.
- Import certyfikatu domeny:
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare
Po pomyślnym imporcie certyfikatu, wyświetli się odpowiednie potwierdzenie.
Wiadomość potwierdza, że certyfikat został prawidłowo zainstalowany w magazynie kluczy.
Magazyn kluczy z certyfikatami jest gotowy. Przejdźmy do następnego kroku.
Jeśli dopiero zaczynasz swoją przygodę z SSL, możesz rozważyć zapisanie się na kurs online poświęcony operacjom SSL/TLS: Operacje SSL/TLS.
Aktywacja SSL w Tomcat
Zakładając, że nadal jesteś zalogowany na serwerze, na którym działa Tomcat, przejdź do folderu „conf”.
- Utwórz kopię zapasową pliku server.xml.
- Odszukaj sekcję
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
- Pamiętaj o zmianie nazwy pliku magazynu kluczy oraz hasła na swoje.
- Zrestartuj serwer Tomcat. Od tego momentu powinien być dostępny przez HTTPS.
Gratulacje!
Ustawienie standardowego portu HTTPS
Dlaczego to ważne?
Domyślnie, po konfiguracji SSL, Tomcat jest dostępny poprzez HTTPS na niestandardowym porcie 8080, co nie jest powszechnie stosowane. Ma to kilka wad:
- Zmuszanie użytkowników do korzystania z niestandardowego portu jest niepraktyczne.
- Przeglądarka może wyświetlić ostrzeżenie, jeżeli certyfikat jest wystawiony na domenę bez określonego numeru portu.
Dlatego celem jest skonfigurowanie Tomcata tak, aby nasłuchiwał na standardowym porcie 443, co umożliwi dostęp do aplikacji poprzez adres https:// bez konieczności podawania numeru portu.
Aby to osiągnąć, edytuj plik server.xml w swoim ulubionym edytorze.
- Odszukaj sekcję
- Zmień port z 8080 na 443.
- Fragment konfiguracji powinien wyglądać następująco:
<Connector port="443" protocol="HTTP/1.1" connectionTimeout="20000" SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS" redirectPort="8443" />
- Zrestartuj serwer Tomcat i uzyskaj dostęp do swojej aplikacji przez HTTPS bez konieczności wpisywania numeru portu.
Sukces! To działa.
Test podatności SSL/TLS
Na koniec przeprowadźmy test, aby zweryfikować, czy serwer nie jest podatny na znane zagrożenia bezpieczeństwa.
Dostępnych jest wiele narzędzi online, o których wspominaliśmy, a my w tym przypadku skorzystamy z SSL Labs.
- Przejdź do SSL Labs i wprowadź adres URL, aby rozpocząć test.
Wynik testu jest pozytywny – ocena „A”.
Mimo to, zawsze warto szczegółowo przejrzeć raport, aby sprawdzić, czy nie występują jakieś podatności, które wymagają naprawy.
To wszystko na dziś.
Mamy nadzieję, że ten artykuł pomógł Ci zrozumieć proces zabezpieczania serwera Tomcat za pomocą certyfikatu SSL/TLS. Jeżeli chcesz poszerzyć swoją wiedzę, polecamy ten kurs.
newsblog.pl