我正在尝试使用docker容器将keycloak配置为与PostgreSQL一起运行(使用PostgreSQL的Azure数据库)。我能够按照密钥斗篷文档here中的指示执行此操作。
我面临的问题是,PostgreSQL的Azure数据库在默认情况下将此选项“强制SSL连接”设置为“启用”,并且密钥斗篷服务器无法使用该选项。服务器启动时会引发以下错误。
ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 49) MSC000001: Failed to start service jboss.undertow.deployment.default-server.default-host./auth:
Caused by: org.postgresql.util.PSQLException: FATAL: SSL connection is required. Please specify SSL options and retry.
如果禁用“强制SSL连接”选项,则可以正常工作。
我想知道如何指定此选项与keycloak一起使用。
我正在使用自定义Dockerfile下载和引导keycloak服务器,并使用
docker run
命令将数据源参数作为环境变量传递。我试过了this approach,当我将它指向我的PostgreSQL数据源而不进行任何修改时,它可以很好地工作。但是,当我将其更改为与自己的Dockerfile兼容时,它也会出现相同的错误。提前致谢。
最佳答案
所以这就是我所做的。
我忽略了jboss共享的最新Dockerfile(可从here获得),并根据需求版本采用了我需要的内容。早些时候我试图自己添加postgreSQL配置,因为keycloak文档建议这样做。因为现在已经开箱即用,所以我将Dockerfile更改为与jboss Dockerfile的keycloak兼容。
我也介绍了新的环境。通过将ssl=true
声明为引导的here来强制SSL连接的变量
关于postgresql - 如何使用Azure PostgreSQL在 key 斗篷中强制实现SSL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48338550/