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