Перейти к основному содержимому

Установка SSL-сертификата на сервер Tomcat (формат JKS)

Вы можете установить SSL-сертификат на сервер Tomcat, чтобы он поддерживал безопасный доступ по HTTPS. В этой статье описано, как установить SSL-сертификат на сервер Tomcat.

Примечание

В качестве примера в этом документе используется Tomcat версии tomcat9.0.13. Перед установкой убедитесь, что порт 443 не занят. Если порт 443 уже используется, при установке сертификата привяжите другой порт.

Получение сертификата

  1. После выпуска сертификата мы предоставим вам файл сертификата в сжатом формате (.zip). В архиве находятся четыре папки, соответствующие четырём форматам сертификатов: Tomcat, Nginx, IIS, Apache; в этом документе для установки используется формат JKS — сертификат из папки Tomcat.

  2. Папка Tomcat будет содержать три файла:

  • domain_com.jks файл сертификата
  • domain_com.key файл закрытого ключа
  • password.txt файл пароля сертификата

Установка SSL-сертификата

  1. Скопируйте полученный файл сертификата 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)

  1. Отредактируйте файл 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"/>
  1. Сохраните файл конфигурации и выполните следующую команду в каталоге bin, чтобы убедиться, что конфигурация правильная.
./configtest.sh
  1. Перезапустите Tomcat, выполнив следующую команду в каталоге bin:
./shutdown.sh  #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器

Тестирование SSL-сертификата

Введите доменное имя, к которому привязан SSL-сертификат, в адресную строку браузера, чтобы проверить, успешно ли установлен ваш SSL-сертификат. В случае успеха в адресной строке браузера появится значок безопасного замка; нажмите на него, чтобы просмотреть информацию о сертификате.

Эффект SSL-сертификата

Безопасная настройка автоматического перенаправления HTTP на HTTPS (необязательно)

Если вам необходимо автоматически перенаправлять HTTP-запросы на HTTPS, вы можете выполнить следующие действия:

  1. Отредактируйте файл /usr/tomcat9.0.13/conf в каталоге web.xml и найдите тег </welcome-file-list>.
  2. После закрывающего тега </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>
  1. Отредактируйте файл server.xml в каталоге /usr/tomcat9.0.13/conf и измените параметр redirectPort на порт connector для SSL, то есть порт 443. Как показано ниже:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
  1. Сохраните файл конфигурации и выполните следующую команду в каталоге bin, чтобы убедиться в правильности конфигурации.
./configtest.sh
  1. Если конфигурация в порядке, перезапустите сервер Tomcat, после чего можно будет обращаться к сайту по доменному имени, и HTTP будет автоматически перенаправляться на HTTPS.
./shutdown.sh  #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器