Мы пытаемся протестировать соединение ключей с базой данных MySQL, используя TLS с самозаверяющими сертификатами. В контейнере, в котором работает этот keycloak, уже есть хранилище доверенных сертификатов и файл хранилища ключей, но я не могу найти документацию о том, как действовать.
Я видел, что можно добавить хранилище доверенных сертификатов с помощью блока, подобного этомув standalone.xml:
<spi name="truststore">
<provider name="file" enabled="true">
<properties>
<property name="file" value="${env.APP_CONFIG_SSL_DATABASE_DIR}/truststore"/>
<property name="password" value="${env.APP_STORE_PASS}"/>
<property name="hostname-verification-policy" value="ANY"/>
<property name="disabled" value="false"/>
</properties>
</provider>
</spi>
Но как насчет хранилища ключей? В обычном приложении JAVA мне нужно было бы запустить мой jav-файл javа что-то вроде этого, например:
java -Djavax.net.ssl.trustStore=${APP_TRUSTED_SERVERS} -Djavax.net.ssl.trustStorePassword=${APP_STORE_PASS} -Djavax.net.ssl.keyStore=${APP_KEYSTORE_CLIENT} -Djavax.net.ssl.keyStorePassword=${APP_STORE_PASS} -jar target/myjarfile.jar
В моем хранилище доверенных сертификатов мне потребуется хранить сертификат CA из MySQL, а в моем хранилище ключей - клиентсертификат для подключения.
Затем в своем блоке URL-адреса подключения я просто определяю некоторые логические значения, такие как useSSL, requireSSL и verifyServerCertificate.
Спасибо