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

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