Установка самоподписанного сертификата или SSL-сертификата Let’s Encrypt на Tomcat — это необходимый шаг для обеспечения HTTPS-соединения между клиентом и сервером Tomcat. Это руководство проведет вас через пошаговый процесс установки самоподписного сертификата или сертификата Let’s Encrypt на Tomcat.
Предварительные условия
- Java, установленная на вашем сервере
- Tomcat установлен на вашем сервере
- Certbot, установленный на вашем сервере (только для установки сертификата Let’s Encrypt)
Сгенерируйте самоподписанный сертификат
Чтобы сгенерировать самоподписанный сертификат, мы воспользуемся командой keytool, которая поставляется вместе с Java. Следующая команда сгенерирует самоподписанный сертификат и сохранит его в файле с именем «tomcat.keystore».
$ keytool -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore
При появлении запроса укажите следующую информацию:
- пароль keystore: пароль для защиты файла keystore.
- имя и фамилия: доменное имя вашего сервера.
- организационное подразделение: Название вашей организации.
- организация: Название вашей организации.
- город: Название вашего города.
- штат: Название вашего штата или провинции.
- код страны: Ваш двухбуквенный код страны.
Настройка Tomcat для использования хранилища ключей
После создания хранилища ключей нам нужно настроить Tomcat на его использование. Для этого нам нужно изменить файл server.xml
файл, расположенный в conf
каталоге вашей установки Tomcat.
Найдите следующий раздел:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
Добавьте следующую конфигурацию под элементом «Connector»:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="path/to/tomcat.keystore"
keystorePass="password" />
Обязательно замените path/to/tomcat.keystore
на фактический путь к файлу keystore, а «password» — на пароль keystore, который вы указали ранее.
Проверка самоподписанного сертификата
Теперь, когда мы настроили Tomcat на использование самоподписного сертификата, мы можем протестировать его, получив доступ к серверу Tomcat по HTTPS. Откройте веб-браузер и введите следующий URL:
https://localhost:8443
Если все настроено правильно, вы должны увидеть предупреждение о том, что сертификат не является доверенным. Это связано с тем, что самоподписанный сертификат не является доверенным по умолчанию. Вы можете перейти на сайт, нажав «Дополнительно», а затем «Перейти на localhost (unsafe)».
Генерация сертификата Let’s Encrypt
Чтобы сгенерировать сертификат Let’s Encrypt, мы воспользуемся инструментом Certbot. Certbot — это бесплатное программное обеспечение с открытым исходным кодом для автоматического обновления и установки SSL/TLS-сертификатов от Let’s Encrypt. Вы можете скачать Certbot с его официального сайта.
После установки Certbot выполните следующую команду, чтобы сгенерировать сертификат Let’s Encrypt:
$ certbot certonly --webroot -w /path/to/webroot -d example.com
Замените «/path/to/webroot
» на фактический путь к веб-корневому каталогу Tomcat, а «example.com» — на имя вашего домена.
Настройка Tomcat на использование сертификата Let’s Encrypt
Теперь, когда мы сгенерировали сертификат Let’s Encrypt, нам нужно настроить Tomcat на его использование. Для этого мы выполним следующие команды:
Чтобы скопировать файлы SSL-сертификата и закрытого ключа в папку /opt/tomcat/conf
, выполните следующие действия:
- Откройте терминал.
- Выполните следующую команду:
$ sudo cp /etc/letsencrypt/live/example.com/{cert,chain,privkey}.pem /opt/tomcat/conf/
Замените «example.com» на ваше реальное доменное имя.
Далее отредактируйте файл server.xml
файл, расположенный в домашнем каталоге Tomcat (/opt/tomcat/conf
в данном случае). Для этого выполните следующую команду:
$ sudo nano /opt/tomcat/conf/server.xml
Внутри server.xml
Найдите раздел, который вы хотите изменить, и внесите необходимые изменения. Откомментируйте раздел, удалив символ <!--
и -->
теги и добавьте данные сертификата, как показано ниже:
<Connector port="8443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateFile="conf/cert.pem"
certificateKeyFile="conf/privkey.pem"
certificateChainFile="conf/chain.pem" />
</SSLHostConfig>
</Connector>
Сохраните изменения и выйдите из редактора.
Проверка сертификата Let’s Encrypt
Теперь, когда мы настроили Tomcat на использование сертификата Let’s Encrypt, мы можем проверить его, получив доступ к серверу Tomcat по HTTPS. Откройте веб-браузер и введите следующий URL:
https://example.com:8443
Замените example.com
на ваше фактическое доменное имя.
Если все настроено правильно, в адресной строке веб-браузера должен появиться зеленый значок замка, означающий, что сертификат является доверенным. Вы можете нажать на значок замка, чтобы просмотреть подробную информацию о сертификате.
Заключение
В этом руководстве мы рассмотрели пошаговый процесс установки самоподписного сертификата или сертификата Let’s Encrypt на Tomcat. Связь HTTPS необходима для безопасной передачи данных между клиентом и сервером, поэтому важно убедиться, что ваш сервер Tomcat использует действительный сертификат SSL/TLS.