Przewodnik krok po kroku, jak skonfigurować certyfikat SSL/TLS na serwerze Tomcat.
Jednym z podstawowych zadań związanych z zabezpieczeniem Tomcata jest konfiguracja certyfikatu SSL, aby aplikacja internetowa była dostępna przez HTTPS.
Istnieje wiele sposobów, aby to osiągnąć.
- Możesz zakończyć SSL w load balancerze
- Implementuj SSL na poziomie CDN
- Korzystaj z serwerów internetowych, takich jak Apache, Nginx itp. Z przodu i zaimplementuj tam SSL
Jeśli jednak nie używasz żadnego z powyższych lub używasz go jako frontonu lub musisz wdrożyć SSL bezpośrednio w Tomcat, pomocne będą poniższe.
W tym artykule zrobimy jak poniżej.
- Generuj CSR (Żądanie podpisania certyfikatu)
- Importuj certyfikat w pliku kluczy
- Włącz SSL w Tomcat
- Skonfiguruj protokół TLS
- Zmień Tomcat, aby nasłuchiwał na porcie 443
- Przetestuj Tomcata pod kątem luki SSL
Zaczynajmy…
Spis treści:
Przygotowanie do certyfikatu SSL/TLS
Pierwszym krokiem byłoby wygenerowanie CSR i podpisanie go przez urząd certyfikacji. Do zarządzania certyfikatami użyjemy narzędzia keytool.
- Zaloguj się do serwera Tomcat
- Przejdź do ścieżki instalacji tomcat
- Utwórz folder o nazwie ssl
- Wykonaj polecenie, aby utworzyć magazyn kluczy
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks
W powyższych poleceniach są dwie zmienne, które możesz chcieć zmienić.
Były:
[[email protected] ssl]# keytool -genkey -alias bloggerflare -keyalg RSA -keysize 2048 -keystore bloggerflare.jks Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: bloggerflare.com What is the name of your organizational unit? [Unknown]: Blogging What is the name of your organization? [Unknown]: Geek Flare What is the name of your City or Locality? [Unknown]: What is the name of your State or Province? [Unknown]: What is the two-letter country code for this unit? [Unknown]: Is CN=bloggerflare.com, OU=Blogging, O=Geek Flare, L=Unknown, ST=Unknown, C=Unknown correct? [no]: yes Enter key password for <bloggerflare> (RETURN if same as keystore password): [[email protected] ssl]#
Zwróć uwagę na pytanie dotyczące imienia i nazwiska. Myślę, że to trochę mylące. To nie jest Twoje imię, ale nazwa domeny, którą chcesz zabezpieczyć.
Po podaniu wszystkich informacji utworzy plik kluczy w bieżącym katalogu roboczym.
Następnym krokiem byłoby wygenerowanie nowego CSR z nowo utworzonym magazynem kluczy za pomocą poniższego polecenia.
keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks
Spowoduje to utworzenie CSR, które musisz wysłać do urzędu certyfikacji, aby uzyskać jego podpisanie. Jeśli się bawisz, możesz rozważyć skorzystanie z BEZPŁATNEGO dostawcy certyfikatów, w przeciwnym razie wybierz opcję premium.
Mam podpisany certyfikat i przystąpię do importowania do magazynu kluczy za pomocą poniższego polecenia.
- Główny certyfikat importu jest nadawany przez dostawcę
keytool -importcert -alias root -file root -keystore bloggerflare.jks
- Importuj certyfikat pośredni
keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks
Uwaga: bez zaimportowania katalogu głównego i pośredniego nie będzie można zaimportować certyfikatu domeny do magazynu kluczy. Jeśli masz więcej niż jednego półproduktu, musisz je wszystkie zaimportować.
- Importuj certyfikat domeny
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare
i otrzymasz potwierdzenie, że został zainstalowany.
Odpowiedź certyfikatu została zainstalowana w magazynie kluczy
Świetnie, więc magazyn kluczy certyfikatów jest już gotowy. Przejdźmy do następnego kroku.
Jeśli jesteś nowy w SSL i chcesz dowiedzieć się więcej, zapisz się na ten kurs online – Operacje SSL/TLS.
Włącz SSL w Tomcat
Zakładając, że nadal jesteś zalogowany na serwerze Tomcat, przejdź do folderu conf
- Zrób kopię zapasową pliku server.xml
- Przejdź do sekcji
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
- Nie zapomnij zmienić nazwy pliku kluczy i hasła na swoje
- Uruchom ponownie tomcat i powinieneś zobaczyć, że Tomcat jest dostępny przez HTTPS
Słodki!
Standardowy port HTTPS
Czemu?
Cóż, jeśli spojrzysz na powyższy zrzut ekranu, mam dostęp do Tomcata przez 8080 z https, co nie jest standardowe i z kilku innych powodów.
- Nie chcesz prosić użytkowników o użycie niestandardowego portu
- Przeglądarka wyświetli ostrzeżenie, gdy certyfikat zostanie wydany na nazwę domeny bez portu
Pomysł polega więc na tym, aby Tomcat nasłuchiwał na porcie 443, aby był dostępny nieco przez https:// bez numeru portu.
Aby to zrobić, edytuj plik server.xml w swoim ulubionym edytorze
- Przejdź do
- Zmień port z 8080 na 443
- To powinno wyglądać tak
<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" />
- Uruchom ponownie Tomcata i uzyskaj dostęp do swojej aplikacji przez https bez numeru portu
Imponujące, to sukces!
Test podatności SSL/TLS
Na koniec przeprowadzimy test, aby upewnić się, że nie jest podatny na zagrożenia internetowe.
Istnieje wiele narzędzi internetowych, które omówiłem tutaj, a tutaj użyję SSL Labs.
- Iść do Laboratoria SSL i wprowadź adres URL, aby rozpocząć test
I jest ZIELONY – ocena.
Jednak zawsze dobrym pomysłem jest przewinięcie raportu i sprawdzenie, czy znajdziesz jakąś lukę i naprawisz ją.
Więc to było wszystko na dzisiaj.
Mam nadzieję, że pomoże ci to poznać procedurę zabezpieczania Tomcata certyfikatem SSL/TLS. Jeśli chcesz dowiedzieć się więcej, gorąco polecam to kurs.