Вопрос или проблема
У меня есть приложение, которое использует HTTP вместо HTTPS. Для обеспечения безопасности мне нужно переключиться на использование HTTPS. Я использую apache_tomcat9.0.87.linux.rrg.
У нас есть центр сертификации (CA). Я сгенерировал сертификат от CA (WebCA11 CRL / RSA 4096). Файл представлен в формате .pfx. Он называется MyHostname.pfx.
Я также загрузил корневой сертификат SHA2 (возможно, моя терминология неверна), который дал мне 2 файла:
inhouse_root_CA_2_DER.crt
inhouse_root_CA_2_PEM.cer
У меня вопрос: что мне делать с этими файлами? У меня мало опыта работы с сертификатами или Apache. Хотя я хорошо разбираюсь в Linux.
Спасибо
Ответ или решение
Настройка Apache Tomcat для использования HTTPS
Для обеспечения безопасности веб-приложения, работающего на Apache Tomcat 9.0.87, вам необходимо перейти с протокола HTTP на HTTPS. Процесс требует настройки SSL-сертификатов и изменения конфигурации вашего сервера. В данном руководстве мы пошагово рассмотрим, как выполнить эту задачу, используя файлы сертификатов, которые вы уже получили.
Шаг 1: Конвертация сертификатов
Ваш сертификат находится в формате PFX (MyHostname.pfx
). Этот формат иногда трудно использовать напрямую в Apache Tomcat. Поэтому сначала мы преобразуем его в формат, который Tomcat можно использовать непосредственно. Для этого используем утилиту OpenSSL.
-
Установите OpenSSL (если он еще не установлен):
sudo apt-get install openssl
-
Извлечение закрытого ключа и сертификата из файла PFX:
openssl pkcs12 -in MyHostname.pfx -nocerts -out mykey.key -nodes openssl pkcs12 -in MyHostname.pfx -clcerts -nokeys -out mycert.crt
Важно: Не забудьте заменить
MyHostname.pfx
на путь к вашему файлу. -
(Опционально) Конвертация сертификата в формат PEM:
Если ваш сертификат уже в формате PEM (файлы с расширением
.crt
или.pem
), то этот шаг можно пропустить. Если требуется, выполните:openssl x509 -inform DER -in inhouse_root_CA_2_DER.crt -out inhouse_root_CA_2_PEM.pem
Шаг 2: Конфигурация Apache Tomcat для использования SSL
Теперь, когда у вас есть закрытый ключ и сертификат, вам нужно настроить server.xml
, находящийся в каталоге conf
вашего Tomcat.
-
Откройте файл server.xml:
nano /path/to/tomcat/conf/server.xml
-
Найдите секцию
<Connector>
для HTTP и измените её или добавьте новую секцию для HTTPS:Вы можете закомментировать существующий HTTP коннектор (например, строку 8080) и добавить новый коннектор для HTTPS на порт 8443 (или любой другой порт, который вы предпочтете):
<!-- Замените или добавьте следующую секцию в файле server.xml --> <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/path/to/mykeystore.p12" keystorePass="your_keystore_password" keystoreType="PKCS12" />
Параметры:
keystoreFile
: указывает на путь к файлу хранилища (при необходимости сконвертируйте файл с ключами).keystorePass
: пароль для вашего хранилища ключей.
Шаг 3: Перезапуск Apache Tomcat
После внесения всех изменений вам необходимо перезапустить сервер Tomcat, чтобы применить новые настройки.
/path/to/tomcat/bin/shutdown.sh
/path/to/tomcat/bin/startup.sh
Шаг 4: Проверка успешной настройки HTTPS
Откройте веб-браузер и введите следующий URL:
https://<ваш_домен>:8443
Вы должны увидеть ваше приложение, работающим через HTTPS. Убедитесь, что ваш браузер не выдает предупреждений о безопасности. Если такие предупреждения присутствуют, это может означать, что цепочка сертификатов не была должным образом установлена.
Заключение
Настройка HTTPS на Apache Tomcat — это важный шаг для повышения безопасности вашего веб-приложения. Следуя этому руководству, вы сможете успешно интегрировать SSL/TLS сертификаты и обеспечить безопасный доступ к вашим сервисам. Теперь ваше приложение готово к безопасной эксплуатации, и вы можете быть уверены в защите передаваемых данных.