Keycloak 21.1集成LDAPS遇SHA1证书算法禁用验证失败求助
排查LDAP证书链的签名算法
OpenSSL仅验证终端证书,但Keycloak会校验完整证书链。执行openssl s_client -connect <ldap-host>:<ldaps-port> -showcerts导出链中所有证书,逐个用openssl x509 -in cert.pem -text -noout | grep "Signature Algorithm"检查签名算法,定位链中使用SHA1签名的证书,替换为SHA256及以上算法的版本。检查JVM安全策略限制
Keycloak 21.1默认依赖的JDK可能已禁用SHA1作为证书签名算法。找到JVM的java.security文件(路径通常为$JAVA_HOME/conf/security/java.security),查看jdk.certpath.disabledAlgorithms配置项。若其中包含SHA1的限制,临时兼容可移除该限制(生产环境不推荐),最优方案是更新LDAP证书链。确认信任库中的证书链完整性
确保导入Keycloak信任库的是包含根CA、中间CA的完整证书链,而非仅终端证书。用keytool -list -v -keystore <keycloak-truststore-path>查看信任库内证书,确认链上所有证书均存在且签名算法符合要求。核对Keycloak LDAP配置的信任库设置
在Keycloak的LDAP提供商配置页面,确认已指定正确的信任库路径,或开启了"Use Truststore SPI",避免因使用系统默认信任库导致的配置不一致。
内容的提问来源于stack exchange,提问作者user1756902

