如何在Keycloak Docker镜像/Kubernetes中配置Auth0证书信任存储
在Keycloak 12.0.4自定义镜像中添加Auth0证书信任存储
步骤1:获取Auth0的SSL证书
先从你的Auth0域名下载证书,执行以下命令(替换成实际的Auth0域名):
openssl s_client -connect your-auth0-domain.auth0.com:443 < /dev/null | sed -n '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p' > auth0.crt
步骤2:修改Dockerfile导入证书
在你现有的自定义Dockerfile中,加入导入证书的步骤。如果用默认的Java信任存储(cacerts),示例如下:
FROM jboss/keycloak:12.0.4 # 保留你原来的主题、插件复制步骤 COPY ./custom-themes/ /opt/jboss/keycloak/themes/ COPY ./custom-providers/ /opt/jboss/keycloak/providers/ # 复制Auth0证书到镜像内 COPY auth0.crt /tmp/auth0.crt # 导入证书到默认信任存储,密码默认是changeit RUN keytool -importcert -file /tmp/auth0.crt -alias auth0 -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt # 清理临时文件 RUN rm /tmp/auth0.crt
可选:使用自定义信任存储
如果不想修改默认的cacerts,可以创建独立的信任存储:
# 导入到自定义信任存储,替换your-custom-password为你自己的密码 RUN keytool -importcert -file /tmp/auth0.crt -alias auth0 -keystore /opt/jboss/keycloak/conf/truststore.jks -storepass your-custom-password -noprompt # 设置Java参数指定自定义信任存储 ENV JAVA_OPTS="-Djavax.net.ssl.trustStore=/opt/jboss/keycloak/conf/truststore.jks -Djavax.net.ssl.trustStorePassword=your-custom-password"
部署验证
构建新镜像后,通过Helm部署到K8s集群,测试Auth0代理IdP的连接。如果还是有证书问题,检查下载的证书是否是完整的证书链(有些情况下需要导入根CA证书)。
内容的提问来源于stack exchange,提问作者bjlevine
相关产品推荐
相关产品推荐

