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

Установка 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 服务器