微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

认证失败通过 LDAPS

如何解决认证失败通过 LDAPS

我通过 JAAS 模块(请参阅官方文档)使用 LDAP/AD 身份验证设置 Rundeck。

验证。使用非加密连接 (providerUrl="ldap://AD-FQDN") 可以正常工作。

当我尝试从 LDAP 切换到 LDAPS (providerUrl="ldaps://AD-FQDN") 时,这就是问题开始的地方。

我收集了 AD 证书以及 Sub 和 Root CA,将它们添加到 rundeck 信任库(以及之后的密钥库)并重新启动了 rundeckd。

证书正在成功验证:

[root@rundeck01 ssl]# openssl verify -CAfile RootCA.cer -untrusted SubCA.cer ad01.cer
ad01.cer: OK

我可以在 service.log 中看到的内容

Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building Failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Caused by: sun.security.validator.ValidatorException: PKIX path building Failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

防火墙端口已打开(可以通过 telnet 连接到第 389,636 页)。

运行:

rundeck-3.4.0.20210614-1
CentOS 7.9

请多多指教。

解决方法

  1. 提取 ldaps 服务器证书:

echo -n | openssl s_client -connect your_ldap_server:636 > cert.out

  1. 导入 Rundeck 的信任库:

keytool -importcert -trustcacerts -file cert.out -alias myldap -keystore etc/rundeck/truststore

  1. 在您的 rundeckd 文件 (-Djavax.net.ssl.trustStore) 中添加信任库路径:
RDECK_JVM_OPTS="-Drundeck.jaaslogin=true \
       -Djava.security.auth.login.config=/etc/rundeck/jaas-ldap.conf \
       -Dloginmodule.name=ldap \
       -Djavax.net.ssl.trustStore=/etc/rundeck/truststore"

Same issue 解决了 here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。