2.3. Konfiguracja zabezpieczeń

Ze względów bezpieczeństwa, komunikacja z serwerem powinna odbywać się z wykorzystaniem protokołu HTTPS. Konfigurację Tomcata opisuje następująca instrukcja.

https://tomcat.apache.org/tomcat-8.5-doc/ssl-howto.html [język angielski]

[Podpowiedź] Podpowiedź
Administratorów rozumiejących ideę i sposób działania infrastruktury klucza publicznego (PKI) zachęcamy do skorzystania z usług zewnętrznego wystawcy certyfikatów (CA), np. Let’s Encrypt.

W kolejnych podrozdziałach przedstawiamy uproszczoną konfigurację, w której wystawcą certyfikatów (CA) jest Klient. Administratorzy dysponujący już wystawionym certyfikatem mogą przejść do rozdziału 2.3.4. Pozostałych prosimy o pobranie i zainstalowanie programu KeyStore Explorer:

https://keystore-explorer.org/ [język angielski]

2.3.1. Utworzenie certyfikatu wystawcy (CA)

Uruchamiamy program KeyStore Explorer.

  1. Klikamy na "Create a new KeyStore".
    Utworzenie nowej składnicy kluczy

    Rysunek 2.12. Utworzenie nowej składnicy kluczy


  2. Jako format wybieramy "PKCS #12".
    Wybór formatu składnicy kluczy

    Rysunek 2.13. Wybór formatu składnicy kluczy


  3. Klikamy na "Generate Key Pair" na pasku narzędziowym.
    Generowanie pary kluczy

    Rysunek 2.14. Generowanie pary kluczy


  4. Potwierdzamy domyślne ustawienia generatora (algorytm: RSA, rozmiar klucza: 2048).
    Parametry generatora

    Rysunek 2.15. Parametry generatora


  5. Wprowadzamy żądany okres ważności certyfikatu wystawcy.
    Okres ważności certyfikatu CA

    Rysunek 2.16. Okres ważności certyfikatu CA


  6. Uzupełniamy podstawowe atrybuty certyfikatu wystawcy.
    1. Klikamy przycisk "Edit name".
      Podstawowe atrybuty certyfikatu (a)

      Rysunek 2.17. Podstawowe atrybuty certyfikatu (a)


    2. Uzupełniamy pola "Common Name", "Organization Name" oraz "Coutry".
      Podstawowe atrybuty certyfikatu (b)

      Rysunek 2.18. Podstawowe atrybuty certyfikatu (b)


  7. Uzupełniamy rozszerzone atrybuty certyfikatu wystawcy.
    1. Klikamy przycisk "Add Extensions".
      Rozszerzone atrybuty certyfikatu (a)

      Rysunek 2.19. Rozszerzone atrybuty certyfikatu (a)


    2. Klikamy przycisk "Use Standard Template".
      Rozszerzone atrybuty certyfikatu (b)

      Rysunek 2.20. Rozszerzone atrybuty certyfikatu (b)


    3. Z listy szablonów wybieramy "CA" i klikamy "OK".
      Rozszerzone atrybuty certyfikatu (c)

      Rysunek 2.21. Rozszerzone atrybuty certyfikatu (c)


    4. Zatwierdzamy rozszerzenia klikając "OK".
      Rozszerzone atrybuty certyfikatu (d)

      Rysunek 2.22. Rozszerzone atrybuty certyfikatu (d)


  8. Zatwierdzamy wszystkie wprowadzone atrybuty certyfikatu klikając "OK".
    Zatwierdzenie atrybutów certyfikatu

    Rysunek 2.23. Zatwierdzenie atrybutów certyfikatu


  9. Zgadzamy się na proponowaną nazwę certyfikatu w składnicy klikając "OK".
    Wybór nazwy certyfikatu w składnicy

    Rysunek 2.24. Wybór nazwy certyfikatu w składnicy


  10. Wpisujemy i potwierdzamy hasło do klucza prywatnego, klikamy "OK".
    Ustanowienie hasła do klucza prywatnego

    Rysunek 2.25. Ustanowienie hasła do klucza prywatnego


  11. Potwierdzamy komunikat o pomyślnym wygenerowaniu klucza.
    Komunikat o pomyślnym wygenerowaniu klucza

    Rysunek 2.26. Komunikat o pomyślnym wygenerowaniu klucza


  12. Upewniamy się, że na liście certyfikatów pojawił się certyfikat wystawcy.
    Certyfikat wystawcy na liście w składnicy kluczy

    Rysunek 2.27. Certyfikat wystawcy na liście w składnicy kluczy


  13. Certyfikat wystawcy można teraz wyeksportować po to, by przekazać go Użytkownikom jako zaufany. Po kliknięciu prawym przyciskiem myszy, z menu kontekstowego wybieramy "Export" / "Export Certificate Chain".
    Eksport certyfikatu wystawcy

    Rysunek 2.28. Eksport certyfikatu wystawcy


  14. Po wskazaniu żądanej lokalizacji i nazwy pliku certyfikatu wystawcy klikamy "Export".
    Konfiguracja eksportu

    Rysunek 2.29. Konfiguracja eksportu


  15. Potwierdzamy komunikat o pomyślnym wygenerowaniu certyfikatu wystawcy.
    Potwierdzenie eksportu certyfikatu wystawcy

    Rysunek 2.30. Potwierdzenie eksportu certyfikatu wystawcy


[Ważne] Ważne
Pamiętaj, aby przekazać wyeksportowany certyfikat wystawcy Użytkownikom.
[Podpowiedź] Podpowiedź
Jeśli zapomnisz wyeskportować certyfikat wystawcy, nic się nie stanie. Możesz to zrobić później.

2.3.2. Utworzenie certyfikatu serwera (SSL)

  1. Po kliknięciu prawym przyciskiem na certyfikat wystawcy (CA), z menu kontekstowego wybieramy "Sign" / "Sign New Key Pair".
    Wystawienie certyfikatu serwera

    Rysunek 2.31. Wystawienie certyfikatu serwera


  2. Potwierdzamy domyślne ustawienia generatora (algorytm: RSA, rozmiar klucza: 2048).
    Parametry generatora

    Rysunek 2.32. Parametry generatora


  3. Wprowadzamy żądany okres ważności certyfikatu SSL.
    Okres ważności certyfikatu serwera

    Rysunek 2.33. Okres ważności certyfikatu serwera


  4. Uzupełniamy podstawowe atrybuty certyfikatu SSL.
    1. Klikamy przycisk "Edit name".
      Podstawowe atrybuty certyfikatu (a)

      Rysunek 2.34. Podstawowe atrybuty certyfikatu (a)


    2. Uzupełniamy pola "Common Name", "Organization Name" oraz "Coutry".
      [Ważne] Ważne
      W pole "Common Name" należy wpisać adres DNS lub IP serwera.
      Podstawowe atrybuty certyfikatu (b)

      Rysunek 2.35. Podstawowe atrybuty certyfikatu (b)


  5. Uzupełniamy rozszerzone atrybuty certyfikatu SSL.
    1. Klikamy przycisk "Add Extensions".
      Rozszerzone atrybuty certyfikatu (a)

      Rysunek 2.36. Rozszerzone atrybuty certyfikatu (a)


    2. Klikamy przycisk "Use Standard Template".
      Rozszerzone atrybuty certyfikatu (b)

      Rysunek 2.37. Rozszerzone atrybuty certyfikatu (b)


    3. Z listy szablonów wybieramy "SSL Server" i klikamy "OK".
      Rozszerzone atrybuty certyfikatu (c)

      Rysunek 2.38. Rozszerzone atrybuty certyfikatu (c)


    4. Klikamy przycisk "Add an Extension".
      Dodanie rozszerzenia (d)

      Rysunek 2.39. Dodanie rozszerzenia (d)


    5. Z listy dostępnych rozszerzeń wybieramy pozycję "Subject Alternative Name", potwierdzamy wybór używając "OK".
      Wybór rozszerzenia (e)

      Rysunek 2.40. Wybór rozszerzenia (e)


    6. Dodajemy wartość rozszerzenia klikając na "Add a General Name".
      Dodanie alternatywnej nazwy (f)

      Rysunek 2.41. Dodanie alternatywnej nazwy (f)


    7. Jeśli dysponujemy domeną, wybieramy "DNS Name". Jeśli nie, "IP Address". W pole "General Name Value" wpisujemy nazwę domeny albo adres ip. Zatwierdzamy wartość rozszerzenia klikając "OK".
      Wprowadzenie alternatywnej nazwy (g)

      Rysunek 2.42. Wprowadzenie alternatywnej nazwy (g)


    8. Po dodaniu domeny albo adresu ip, zatwierdzamy listę przyciskiem "OK".
      Potwierdzenie alternatywnych nazw (h)

      Rysunek 2.43. Potwierdzenie alternatywnych nazw (h)


    9. Po upewnieniu się, że rozszerzenie "Subject Alternative Name" zostało dodane, zatwierdzamy listę przyciskiem "OK".
      Zatwierdzenie listy rozrzerzeń (i)

      Rysunek 2.44. Zatwierdzenie listy rozrzerzeń (i)


  6. Zatwierdzamy wszystkie wprowadzone atrybuty certyfikatu klikając "OK".
    Zatwierdzenie atrybutów certyfikatu

    Rysunek 2.45. Zatwierdzenie atrybutów certyfikatu


  7. Zgadzamy się na proponowaną nazwę certyfikatu w składnicy klikając "OK".
    Wybór nazwy certyfikatu w składnicy

    Rysunek 2.46. Wybór nazwy certyfikatu w składnicy


  8. Wpisujemy i potwierdzamy hasło do klucza prywatnego, klikamy "OK".
    Ustanowienie hasła do klucza prywatnego

    Rysunek 2.47. Ustanowienie hasła do klucza prywatnego


  9. Potwierdzamy komunikat o pomyślnym wygenerowaniu klucza.
    Komunikat o pomyślnym wygenerowaniu klucza

    Rysunek 2.48. Komunikat o pomyślnym wygenerowaniu klucza


  10. Upewniamy się, że na liście certyfikatów pojawił się certyfikat serwera.
    Certyfikat serwera na liście w składnicy kluczy

    Rysunek 2.49. Certyfikat serwera na liście w składnicy kluczy


2.3.3. Zapisanie składnicy kluczy

  1. Klikamy na "Save" na pasku narzędziowym.
    Zapisywanie składnicy kluczy

    Rysunek 2.50. Zapisywanie składnicy kluczy


  2. Wpisujemy i potwierdzamy hasło do składnicy kluczy, klikamy "OK".
    Ustanowienie hasła do składnicy kluczy

    Rysunek 2.51. Ustanowienie hasła do składnicy kluczy


  3. Wskazujemy, gdzie ma zostać zapisany plik składnicy kluczy, klikamy "Zapisz".
    Wskazanie lokalizacji i nazwy pliku składnicy kluczy

    Rysunek 2.52. Wskazanie lokalizacji i nazwy pliku składnicy kluczy


To wszystko! Składnica kluczy jest już gotowa. Przejdź do następnego podrozdziału, aby dowiedzieć się, jak należy skonfigurować Tomcata, by jej używał.

2.3.4. Konfiguracja HTTPS w Tomcacie

Ustawienia dotyczące szyfrowania połączeń przechowywane są pliku "server.xml" znajdującym się w podkatalogu "/conf" katalogu instalacyjnego Tomcata. Wspomniany plik należy uzupełnić fragmentem podobnym do poniższego, najlepiej tuż za ostatnim elementem typu Connector. Różnice między przykładową a faktyczną konfiguracją będą ograniczać się do atrybutów wymienionych w 2 ostatnich linijkach.

Fragment pliku server.xml konfigurujący HTTPS

Rysunek 2.53. Fragment pliku server.xml konfigurujący HTTPS


Znaczenie poszczególnych atrybutów jest następujące.

keystoreFile
Ścieżka do pliku składnicy kluczy.
keystorePass
Hasło chroniące składnicę kluczy.
keyAlias
Alias certyfikatu SSL w składnicy kluczy.
keyPass
Hasło chroniące klucz prywatny certyfikatu SSL.

[Podpowiedź] Podpowiedź
Po wprowadzeniu zmian w konfiguracji należy zrestartować Tomcata.