使用泊坞窗图像进行Keycloak SSL设置

问题描述 投票:1回答:1

我正在尝试使用docker image(https://hub.docker.com/r/jboss/keycloak/版本4.5.0-Final)部署keycloak,并面临设置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而未指定cert卷mount / etc / x509 / https时,keycloak服务器会生成自签名证书,我在浏览器中查看应用程序时看不到问题

我想这可能更像是一个证书创建问题而不是特定于keycloak的任何问题,但是,不确定如何使其工作。任何帮助表示赞赏

docker ssl keycloak keycloak-services
1个回答
3
投票

经过一些研究后,以下方法有效(对于自签名证书,我仍然需要弄清楚如何处理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

从.p12密钥库生成.crt

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

从.p12密钥库生成.key

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>",
© www.soinside.com 2019 - 2024. All rights reserved.