Подготовка сертификатов для настройки TLS(SSL)-шифрования
Для включения TLS(SSL)-шифрования в продукте необходимо предварительно сформировать хранилище доверенных корневых сертификатов УЦ (truststore) и хранилище ключей (keystore), в которых будут содержаться подписанные корневым сертификатом УЦ ключи в формате пар «сертификат — приватный ключ».
Хранилище доверенных сертификатов (truststore)
При установке
бэкенда продукта автоматически формируется хранилище доверенных корневых сертификатов УЦ (truststore)
по пути: /etc/ssl/certs/java/cacerts.
По умолчанию путь к хранилищу задается в соответствующих конфигурационных параметрах бэкенда в файле application.properties.
Для добавления нового доверенного корневого сертификата в truststore используйте утилиту keytool, поставляемую вместе с JRE.
Управление truststore с помощью keytool
Для управления хранилищем доверенных сертификатов (truststore) используется утилита keytool, входящая в состав JRE. Ниже приведены стандартные операции, необходимые для настройки доверия к сертификатам внешних сервисов:
-
импорт сертификата в пользовательское хранилище
truststore;Для добавления внешнего сертификата (например, сервера удаленного доступа) в отдельное хранилище выполните команду:
$JAVA_HOME/bin/keytool -keystore truststore.jks -alias guakamole -import -file ./docker-compose/lcm/config/ira-server.domain.local.crt
После выполнения команды система запросит подтверждение импорта. Введите
yes, чтобы добавить сертификат в хранилище.Хранилище truststore.jksсоздается автоматически, если оно не существует. Укажите пароль при первом создании — он потребуется при последующем использовании. -
импорт сертификата в системное хранилище
truststore;Для того чтобы сертификат стал доверенным для всех Java-приложений в системе, выполните следующие действия (приводятся примеры для ОС Ubuntu):
-
Установите пакет ca-certificates-java, обеспечивающий интеграцию системных сертификатов с Java:
apt install ca-certificates-java
-
Скопируйте пользовательский файл сертификата с расширением .crt в системный каталог /usr/local/share/ca-certificates/:
cp /opt/inno-lcm-core/inno.crt /usr/local/share/ca-certificates/inno.crt
-
Выполните команду
update-ca-certificates, чтобы обновить системное хранилищеtruststoreи добавить сертификат в /etc/ssl/certs/java/cacerts:update-ca-certificates
-
-
просмотр содержимого системного
truststore;Для проверки наличия сертификата в системном хранилище /etc/ssl/certs/java/cacerts выполните команду:
$JAVA_HOME/bin/keytool -list -keystore /etc/ssl/certs/java/cacerts | grep ira
Команда выводит список сертификатов, содержащих в имени подстроку
ira. Если сертификат добавлен, он отобразится в выводе.
Хранилище ключей (keystore)
Для создания хранилища ключей (keystore):
-
Обратитесь в УЦ, который предоставил доверенный корневой сертификат, с запросом на формирование подписанной пары «сертификат — приватный ключ».
-
Необязательный шаг — если пара «сертификат — приватный ключ» предоставлена в виде отдельных файлов, запакуйте ее в Java-совместимое хранилище, используя утилиту
keytool.
Настройка путей и паролей в конфигурации
После создания хранилищ сертификатов и ключей укажите пути к ним и пароли в соответствующих конфигурационных параметрах бэкенда в файле application.properties.
Обновлено: