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

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


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>

Использование привилегированного порта

По умолчанию порты до 1024 для Java являются привилегированными. Для того, чтобы использовать порт 80 или 443 необходимо выполнить команду для расширения прав Java Данное действие потенциально опасно, использовать данный способ можно только в крайней необходимости. Рекомендуем использовать обратный прокси для данного взаимодействия: sudo setcap 'cap_net_bind_service=+ep' $(readlink -f $(which java)). В данном случае Веб интерфейс будет доступен по адресу https://\<server.address>