Настройка SSL Keycloak с использованием образа докера - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь развернуть keycloak с использованием образа докера (https://hub.docker.com/r/jboss/keycloak/ версия 4.5.0-Final) и столкнулся с проблемой при настройке SSL.

Согласно документации

Образ Keycloak позволяет указать как закрытый ключ, так и сертификат для обслуживания HTTPS.В этом случае вам нужно предоставить два файла:

tls.crt - сертификат tls.key - закрытый ключ. Эти файлы должны быть смонтированы в / etc/ x509 / каталог https.Изображение автоматически преобразует их в хранилище ключей Java и реконфигурирует Wildfly для его использования.

Я выполнил указанные шаги и снабдил настройку монтирования тома папкой с необходимыми файлами (tls.crt и tls)..key), но я сталкиваюсь с проблемами с установлением соединения SSL, получая

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

ошибку, блокирующую загрузку keycloak в браузере при попытке доступа к нему.

Я использовал letsencryptгенерировать файлы pem и использовать openssl для создания файлов .crt и .key.Также попытался просто openssl создать эти файлы, чтобы сузить проблему, и поведение такое же (некоторая дополнительная информация, если это имеет значение)

По умолчанию, когда я просто указываю только привязку порта -p 8443:8443 без указания монтирования тома сертификата / etc / x509 / https сервер keycloak генерирует самозаверяющий сертификат, и я не вижу проблем при просмотре приложения в браузере

IПолагаю, что это может быть скорее проблемой создания сертификата, чем чем-то специфичным для keycloak, но не знаете, как заставить это работать.Любая помощь приветствуется

1 Ответ

0 голосов
/ 07 октября 2018

После некоторых исследований сработал следующий метод (для самозаверяющих сертификатов мне все еще нужно выяснить, как поступить с letsencrypt CA for prod)

создать самозаверяющий сертификат с помощью keytool

keytool -genkey -alias localhost -keyalg RSA -keystore keycloak.jks -validity 10950

конвертировать .jks в .p12

keytool -importkeystore -srckeystore keycloak.jks -destkeystore keycloak.p12 -deststoretype PKCS12

генерировать .crt из хранилища ключей .p12

openssl pkcs12 -in keycloak.p12 -nokeys -out tls.crt

генерировать .key из хранилища ключей .p12

openssl pkcs12 -in keycloak.p12 -nocerts -nodes -out tls.key

Затем использовать tls.crt и tls.key для монтирования тома / etc / x509 / https

Также в приложении безопасности в файле keycloak.json укажите следующие свойства

"truststore" : "path/to/keycloak.jks",
"truststore-password" : "<jks-pwd>",
...