Невозможно получить доступ к Keycloak через браузер после настройки SSL / TLS балансировщика нагрузки

#amazon-web-services #docker #ssl #jboss #keycloak

#amazon-веб-сервисы #докер #ssl #джбосс #скрытый ключ

Вопрос:

В настоящее время у меня есть сервер AWS, настроенный с помощью docker для запуска контейнера docker Keycloak. Для SSL / TLS существует балансировщик нагрузки AWS, настроенный для направления трафика https / 443 в контейнер и получения им его через 8080, прерывая шифрующее соединение на указанном балансировщике нагрузки.

При создании контейнера с помощью следующей команды я могу перейти к сервису keycloak и войти в него, перейдя по IP-адресу сервера. docker run --name keycloak -v keybase-storage -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=TempAdminPassword jboss/keycloak Однако, если я пытаюсь войти на сервер, перейдя по URL-адресу, я перенаправляюсь на URL http://default-host:8080/auth/admin/ -адрес, а браузер отображает страницу ошибки подключения.

Пытаясь найти решение этой проблемы, я нашел, как передать параметры Java в контейнер при его первом запуске, и, используя ресурсы с этой страницы, я использовал следующую команду для запуска контейнера (URL заменен из соображений конфиденциальности) docker run --name keycloak -v keybase-storage -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=TempAdminPassword -e JAVA_OPTS_APPEND="-Dkeycloak.frontendUrl=https://sso.IntendedURL.com" jboss/keycloak , однако это дает те же результаты при попытке перейти на следующую страницу.страница.

Основная подсказка, от которой я должен отказаться прямо сейчас, — это строка в конце ранее показанного docker run command , которая гласит::

19:23:00,039 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 67) WFLYUT0021: Registered web context: '/auth' for server 'default-server'

Что, я полагаю, мне нужно сделать сейчас, так это либо изменить конфигурацию контейнера docker после его создания (не удалось отредактировать файлы с помощью docker exec , так что это менее вероятно), либо передать параметр Java в run команду при первом запуске контейнера.

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

Спасибо.

Информация об окружающей среде:

  • Операционная система
    • Amazon Linux 2
  • Версия Docker
    • 19.03.13-ce, сборка 4484c46
  • Версия Скрытого ключа
    • 12.0.1 (Ядро WildFly 13.0.3.Финал)

Комментарии:

1. Не очевидно, в чем проблема и какова ваша конфигурация AWS. Предположение вслепую (я надеюсь, что AWS в порядке, например. sec. groups, конфигурации TLS, ALB, …): прочитайте Enabling proxy address forwarding раздел из используемого образа Docker readme.

2.Казалось бы, решением было бы установить следующие теги при первом запуске / создании контейнера: KEYCLOAK_FRONTEND_URL=https://sso.IntendedURL.com"/auth PROXY_ADDRESS_FORWARDING=true это, похоже, сработало, позволив нам войти на сервер и позволить нам перемещаться. Однако, когда я перехожу к настройке электронной почты для учетной записи администратора, перейдя на manage accounts страницу, меня снова приветствует страница для https://default-host::8080/auth/realms/master/account и так далее.

3. Даже у меня такая же проблема, пожалуйста, дайте мне знать, смогли ли вы в любом случае устранить проблему, войдя в контейнер