Установка SSL-сертификата на сервер Tomcat (формат JKS)
Вы можете установить SSL-сертификат на сервер Tomcat, чтобы он поддерживал безопасный доступ по HTTPS. В этой статье описано, как установить SSL-сертификат на сервер Tomcat.
В качестве примера в этом документе используется Tomcat версии tomcat9.0.13. Перед установкой убедитесь, что порт 443 не занят. Если порт 443 уже используется, при установке сертификата привяжите другой порт.
Получение сертификата
-
После выпуска сертификата мы предоставим вам файл сертификата в сжатом формате (.zip). В архиве находятся четыре папки, соответствующие четырём форматам сертификатов: Tomcat, Nginx, IIS, Apache; в этом документе для установки используется формат JKS — сертификат из папки Tomcat.
-
Папка Tomcat будет содержать три файла:
domain_com.jksфайл сертификатаdomain_com.keyфайл закрытого ключаpassword.txtфайл пароля сертификата
Установка SSL-сертификата
- Скопируйте полученный файл сертификата
domain_com.jksиз локального каталога в каталог/usr/tomcat9.0.13/confна сервере Tomcat.
- В разных версиях Tomcat названия путей могут немного отличаться, выполняйте действия в соответствии с путём вашего сервера.
- Если у части пользователей версия JDK отличается от версии JDK в среде, где мы преобразовывали JKS-файл, может потребоваться вручную преобразовать JKS-файл в текущей среде.
Для преобразования JKS-файла используйте приведённую ниже команду, не забудьте заменить соответствующие параметры:
keytool -importkeystore -srckeystore domain.pfx -srcstoretype pkcs12 -srcstorepass pfxpassword -destkeystore domain.jks -deststoretype jks -deststorepass pfxpassword
Замените domain.pfx (файл pfx в папке IIS) pfxpassword (пароль файла pfx) domain.jks (имя файла jks после преобразования) pfxpassword (пароль файла PFX)
- Отредактируйте файл
server.xmlв каталоге/usr/tomcat9.0.13/conf. Добавьте атрибут Connector в файлserver.xmlсо следующим содержимым:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/usr/tomcat9.0.13/conf/domain_com.pfx" <! -- Путь к сертификату -->
keystorePass="Пароль сертификата" <! -- Пожалуйста, замените содержимым файла пароля password.txt -->
clientAuth="false"/>
- Сохраните файл конфигурации и выполните следующую команду в каталоге bin, чтобы убедиться, что конфигурация правильная.
./configtest.sh
- Перезапустите Tomcat, выполнив следующую команду в каталоге bin:
./shutdown.sh #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器
Тестирование SSL-сертификата
Введите доменное имя, к которому привязан SSL-сертификат, в адресную строку браузера, чтобы проверить, успешно ли установлен ваш SSL-сертификат. В случае успеха в адресной строке браузера появится значок безопасного замка; нажмите на него, чтобы просмотреть информацию о сертификате.

Безопасная настройка автоматического перенаправления HTTP на HTTPS (необязательно)
Если вам необходимо автоматически перенаправлять HTTP-запросы на HTTPS, вы можете выполнить следующие действия:
- Отредактируйте файл
/usr/tomcat9.0.13/confв каталогеweb.xmlи найдите тег</welcome-file-list>. - После закрывающего тега
</welcome-file-list>добавьте перенос строки и вставьте следующее содержимое.
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
- Отредактируйте файл
server.xmlв каталоге/usr/tomcat9.0.13/confи измените параметрredirectPortна портconnectorдля SSL, то есть порт 443. Как показано ниже:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
- Сохраните файл конфигурации и выполните следующую команду в каталоге
bin, чтобы убедиться в правильности конфигурации.
./configtest.sh
- Если конфигурация в порядке, перезапустите сервер Tomcat, после чего можно будет обращаться к сайту по доменному имени, и HTTP будет автоматически перенаправляться на HTTPS.
./shutdown.sh #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器