Перейти к содержанию

Включение нативной поддержки TLS/SSL


* Для запуска приложения с нативной поддержкой TLS/SSL протокола шифрования, потребуется утилита keytool поставляемая вместе с openjdk. * Если при установке JDK/JVM утилита keytool не была установлена, её потребуется установить отдельно. * Так же необходимо установить утилиту openssl, для работы с сертификатами. * Для самозаверенных сертификатов, потребуется дополнительно установить корневой сертификат центра сертификации.

1. С помощью утилиты openssl из ваших пары Сертификат/Приватный ключ, необходимо создать специальное хранилище ключей для JVM и поместить в него информацию о сертификате.
* После ввода команды, необходимо будет задать пароль для хранилища ключей. Запомните его, он потребуется далее!
* Для конвертации форматов сертификата отличных от PEM, воспользуйтесь справкой по утилите openssl

openssl pkcs12 -export -name <alias> -in <cert.crt> -inkey <cert.key> -out <keystore.p12>

Параметр Значение
pkcs12 Тип хранилища ключей JVM.
Рекомендуется использовать pkcs12
<alias> Псевдоним, по которому будет осуществляться поиск в хранилище
<cert.crt> Путь до файла сертификата в формате PEM
<cert.key> Путь до файла приватного ключа в формате PEM
<keystore.p12> Имя хранилища ключей JVM

2. С помощью утилиты keytool добавьте корневой сертификат центра сертификации в хранилище доверенных ключей JVM.
* Если используется не самозаверенный сертификат, данный пункт можно пропустить. Достаточно установить в систему стандартные ca-сертификаты

keytool -importcert -alias <rootCA> -keystore /usr/lib/jvm/java-11-openjdk-amd64/lib/security/cacerts -storepass changeit -file <rootCA.crt>
|Параметр|Значение| |---|---| |<rootCA>|Псевдоним, по которому будет осуществляться поиск в хранилище| |/usr/lib/jvm/java-11-openjdk-amd64/lib/security/cacerts|Стандартный путь до хранилища доверенных сертификатов в JVM, при установке пакета openjdk-11-jdk.
Каталог java-11-openjdk-amd64 может быть другим, в зависимости от типа архитектуры системы| |changeit|Стандартный пароль для хранилища доверенных сертификатов JVM| |<rootCA.crt>|Путь до файла сертификата в формате PEM|

3. Откройте файл application.properties приложения GitFlic и внесите конфигурационные параметры в соответствии с вашими данными

* Параметры отмеченные как обязательные, должны присутствовать в файле!

Параметр Обязательный Значение Описание
server.ssl.enabled Да true Включение поддержки SSL
server.ssl.protocol Нет TLS Указание что необходимо использовать тип протокола TLS
server.ssl.key-store Да file:\<path> Абсолютный путь до файла хранилища ключей созданного в п.1
server.ssl.key-store-type Да pkcs12 Указание типа хранилища ключей
server.ssl.key-store-password Да <secret> Пароль от хранилища ключей созданного в п.1
server.ssl.key-alias Да <alias> Псевдоним пары сертификат/ключ указанный в п.1
server.ssl.key-password Нет <secret> Пароль от пары сертификат/ключ внутри хранилища ключей JVM созданного в п.1,если таковой был задан.
По умолчанию, пароль не установлен
server.ssl.trust-store Нет file:\<path> Абсолютный путь до файла хранилища ключей доверенных сертификатов JVM, если используется нестандартное хранилище
server.ssl.trust-store-password Нет <secret> Пароль от хранилища ключей доверенных сертификатов JVM, если используется нестандартное хранилище
server.ssl.trust-store-type Нет pkcs12/jks Тип хранилища ключей доверенных сертификатов JVM

* С полным списком всех доступных параметров для конфигурации TLS/SSL, можно ознакомиться на данной странице.

4. Запустите приложение GitFlic. Веб интерфейс будет доступен по адресу https://\<server.address>:\<server.port>