TLS:主机名与对等证书中的 CN 不匹配

TLS:主机名与对等证书中的 CN 不匹配

我尝试通过 StartTLS 连接 LDAP,但遇到了问题。我已按照本指南一步步操作https://help.ubuntu.com/12.04/serverguide/openldap-server.html#openldap-tls并且 LDAP 运行正常,在我的 Ubuntu Sever 12.04 上执行“ldapsearch -xZZ -h 172.25.80.144”

但是,在我的 Ubuntu Desktop 11.04 客户端中出现此错误:

ldapsearch -x -H 172.25.80.144 -ZZ 
ldap_start_tls: Connect error (-11)
                additional info: **TLS: hostname does not match CN in peer certificate**

服务器 /etc/ldap/ldap.conf

 BASE dc=prueba,dc=borja
 URI  ldap://prueba.borja
 SIZELIMIT 12
 TIMELIMIT 15
 DEREF     never
 TLS_CACERT /etc/ssl/certs/ca-certificates.crt

客户端 /etc/ldap.conf

 ssl start_tls
 tls_checkpeer no

/etc/ldap/ldap.conf

 BASE dc=prueba,dc=borja
 URI  ldap://prueba.borja
 SIZELIMIT 12
 TIMELIMIT 15
 DEREF never
 TLS_REQCERT allow

有人能告诉我如何修复这个问题吗?我认为主机名没问题。

谢谢!

答案1

尝试

TLS_REQCERT never

在 /etc/ldap/ldap.conf 中。这将阻止检查证书。请注意,这会使连接更加不安全。

/etc/ldap.conf 不应影响 ldapsearch(1)

还可以尝试删除命令行上的第二个 -Z。这可能是导致失败的原因,即使您允许 TLS_REQCERT。

答案2

看这篇文章时我注意到了几件事。

首先,您正在通过标准 LDAP 而不是 LDAPS 运行 LDAP 服务器。即 ldaps://prueba.borja

其次,根据您的配置,似乎没有为 LDAP 服务器配置证书。所有被识别的都是 CA,当服务器作为客户端解析 CA 链和/或在客户端请求时发送链时,该 CA 用于信任。

最后,错误来自客户端,表明正在提供的 TLS 证书具有客户端未请求的通用名称 (CN) 和/或主题备用名称 (SAN)。这要求连接到 LDAP 服务器的客户端执行如下操作

ldapsearch -x -H prueba.borja -ZZ

这要求证书具有 prueba.borja 的通用名称 (CN) 或 prueba.borja 的主题备用名称 (SAN)

另外,需要提醒的是,LDAP 服务器提供的证书必须由您的证书颁发机构 (CA) 根证书和您可能拥有的中间证书签名。如果没有,您将收到其他错误。如果您使用的是公司生成的证书颁发机构,您的管理员应该能够生成一个。如果您使用的是公共域证书颁发机构,请联系您的供应商以生成证书。无论哪种情况,请务必告诉他们对通用名称和/或主题备用名称进行调整以使其与您标识的名称一致。

一旦正确设置了所有内容,就可以成功进行正确的 TLS 握手

相关内容