Включение нативной поддержки 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>