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

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

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

Примечание

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

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

  1. После выпуска сертификата мы предоставим вам файл сертификата (.zip). Архив содержит четыре папки, соответствующие четырём форматам сертификатов: Tomcat, Nginx, IIS, Apache. В этом документе для установки используется формат PFX, поэтому потребуется сертификат из папки IIS. (Разные папки отличаются только форматом файлов; использование файлов из других папок не вызывает конфликтов.)
  2. Папка IIS будет содержать три файла:
  • domain_com.pfx — файл сертификата
  • domain_com.key — файл закрытого ключа
  • password.txt — файл пароля сертификата

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

  1. Скопируйте полученный файл сертификата domain_com.pfx из локального каталога в каталог /usr/tomcat9.0.13/conf на сервере Tomcat. В разных версиях Tomcat имена путей могут немного отличаться; перейдите к пути, соответствующему вашему серверу.
  2. Отредактируйте файл server.xml в каталоге /usr/tomcat9.0.13/conf. В файле server.xml добавьте атрибут Connector со следующим содержимым:
<Connector port="443"  
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="/usr/tomcat9.0.13/conf/domain_com.pfx" <! -- Путь к сертификату -->
keystoreType="PKCS12"
keystorePass="Пароль сертификата" <! -- Пожалуйста, замените на содержимое файла password.txt -->
clientAuth="false"
SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
  1. Сохраните файл конфигурации и выполните следующую команду в каталоге bin, чтобы убедиться, что конфигурация указана правильно.
./configtest.sh
  1. Перезапустите Tomcat и выполните следующую команду в каталоге bin:
./shutdown.sh  #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器

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

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

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

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

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

  1. Отредактируйте файл web.xml в каталоге /usr/tomcat9.0.13/conf и найдите тег </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 服务器