Як реалізувати SSL в Apache Tomcat?

Покроковий посібник із налаштування сертифіката SSL/TLS на сервері Tomcat.

Одним із важливих завдань для захисту Tomcat є налаштування сертифіката SSL, щоб веб-програма була доступна через HTTPS.

Є багато способів досягти цього.

  • Ви можете завершити SSL на балансувальнику навантаження
  • Впровадити SSL на рівні CDN
  • Використовуйте веб-сервери, такі як Apache, Nginx тощо, і запровадьте там SSL

Однак, якщо ви не використовуєте нічого з перерахованого вище або використовуєте це як інтерфейс або вам потрібно розгорнути SSL безпосередньо в Tomcat, вам допоможе наступне.

У цій статті ми зробимо так, як показано нижче.

  • Створити CSR (запит на підписання сертифіката)
  • Імпортуйте сертифікат у файл сховища ключів
  • Увімкніть SSL у Tomcat
  • Налаштувати протокол TLS
  • Змініть Tomcat на прослуховування на порту 443
  • Перевірте Tomcat на вразливість SSL

Давайте розпочнемо…

Підготовка до SSL/TLS сертифікату

Першим кроком буде створення CSR і отримання його підпису центр сертифікації. Ми будемо використовувати утиліту keytool для керування сертифікатами.

  • Увійдіть на сервер Tomcat
  • Перейдіть до шляху встановлення tomcat
  • Створіть папку під назвою ssl
  • Виконайте команду для створення сховища ключів
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks

У командах вище є дві змінні, які ви можете змінити.

  Як завжди відображатися на iPhone X
  • Псевдонім – краще, щоб він був значущим, щоб у майбутньому ви могли швидко його розпізнати. Я вважаю за краще залишити його як доменне ім’я.
  • Ім’я файлу – знову ж таки, добре залишити доменне ім’я.
  • Наприклад:

    [[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]#

    Зверніть увагу на запитання щодо імені та прізвища. Я вважаю, що це трохи вводить в оману. Це не ваше ім’я, а доменне ім’я, яке ви хочете захистити.

    Після надання всієї інформації буде створено файл сховища ключів у поточному робочому каталозі.

    Далі буде створено новий CSR із щойно створеним сховищем ключів за допомогою наведеної нижче команди.

    keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks

    Це створить CSR, який потрібно надіслати в центр сертифікації, щоб отримати його підпис. Якщо ви граєтесь, ви можете розглянути можливість використання БЕЗКОШТОВНОГО постачальника сертифікатів, інакше виберіть преміум.

      Як приховати повідомлення на iPhone

    Я підписав сертифікат і перейду до імпорту в сховище ключів за допомогою наведеної нижче команди.

    • Кореневий сертифікат імпорту надається постачальником
    keytool -importcert -alias root -file root -keystore bloggerflare.jks
    • Імпорт проміжного сертифіката
    keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks

    Примітка: без імпортування кореневого та проміжного серверів ви не зможете імпортувати сертифікат домену в сховище ключів. Якщо у вас є більше одного проміжного продукту, ви повинні імпортувати їх усі.

    • Імпорт сертифіката домену
    keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare

    і ви отримаєте підтвердження того, що його встановлено.

    Відповідь сертифіката встановлено в сховищі ключів

    Чудово, сховище ключів сертифікатів готове. Переходимо до наступного кроку.

    Якщо ви новачок у SSL і хочете дізнатися більше, запишіться на цей онлайн-курс – Операції SSL/TLS.

    Увімкніть SSL у Tomcat

    Якщо ви все ще ввійшли на сервер Tomcat, перейдіть до папки conf

    • Зробіть резервну копію файлу server.xml
    • Перейдіть до розділу
    SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
    • Не забудьте змінити назву та пароль файлу сховища ключів на ваші
    • Перезапустіть tomcat, і ви побачите, що Tomcat доступний через HTTPS
      Voralent Antilope Оптимізуйте JPEG та PNG файли масою, видаляйте дані EXIF

    Солодкий!

    Стандартний порт HTTPS

    чому

    Ну, якщо ви подивіться на знімок екрана вище, я отримую доступ до Tomcat через 8080 за допомогою https, що не є стандартним, і з кількох інших причин.

    • Ви не хочете просити користувачів використовувати спеціальний порт
    • Браузер видасть попередження, оскільки сертифікат видано на доменне ім’я без порту

    Отже, ідея полягає в тому, щоб Tomcat прослуховував порт 443, щоб він був доступний через https:// без номера порту.

    Для цього відредагуйте файл server.xml за допомогою улюбленого редактора

    • Перейдіть до
    • Змініть порт з 8080 на 443
    • Це має виглядати так
    <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" />
    • Перезапустіть Tomcat і отримайте доступ до програми за допомогою https без жодного номера порту

    Вражає, це успіх!

    Тест на вразливість SSL/TLS

    Нарешті, ми виконаємо тест, щоб переконатися, що він не вразливий до онлайн-загроз.

    Є багато онлайн-інструментів, які я обговорював тут, і тут я буду використовувати SSL Labs.

    • Йти до SSL Labs і введіть URL-адресу, щоб почати тест

    І це ЗЕЛЕНИЙ – рейтинг.

    Однак завжди корисно прокрутити звіт униз і перевірити, чи знайдете ви якусь вразливість, і виправити її.

    Ось і все на сьогодні.

    Сподіваюся, це допоможе вам дізнатися про процедуру захисту Tomcat за допомогою сертифіката SSL/TLS. Якщо вам цікаво дізнатися більше, я настійно рекомендую це курс.