Настройте Keycloak с пакетом сертификатов сервера - PullRequest
0 голосов
/ 27 июня 2019

Я настроил HTTPS на сервере Keycloak, поместив сертификат A.crt в хранилище ключей Java и настроив это хранилище ключей в standalone.xml. До сих пор HTTPS-доступ хорошо работал от данного клиента. Сертификат подписан промежуточным CA B, который подписан корневым CA C.

Теперь у меня возникают проблемы при доступе к Keycloak с другого клиента. В нем говорится: «невозможно получить сертификат локального эмитента» или «сертификат подписан неизвестным органом» (в зависимости от программного обеспечения клиента). Я совершенно уверен, что основной причиной является то, что сертификат CA B.crt не известен этому клиенту. Сильным показателем является то, что я могу получить доступ к Keycloak с этого клиента с curl --cacert B.crt https://keycloak....

Поскольку я не могу предсказать, на каких клиентах будут установлены сертификаты CA, я хотел бы настроить пакет, состоящий из A.crt, B.crt и C.crt, в качестве корневого сертификата. Если бы это был сервер, который непосредственно получил сертификат PEM, я бы использовал пакет, полученный из cat A.crt B.crt C.crt > bundle.crt, но из-за его использования хранилища ключей Java это не вариант с Keycloak.

Итак, как я могу сохранить комплект сертификатов сервера (если это правильная терминология) в хранилище ключей Java, чтобы Keycloak мог использовать его таким образом, чтобы «все» клиенты могли получить доступ к службе?

ОБНОВЛЕНИЕ Я пытался добавить промежуточный и корневой сертификаты B и C в хранилище ключей, уже используемое Keycloak, но это не решило текущую проблему:

keytool -import -alias b -file B.crt -keystore $KEYSTORE
keytool -import -alias c -file C.crt -keystore $KEYSTORE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...