Active-Directory

openssl s_client 忽略 /usr/share/ca-certificates 中的自定義根 CA 證書

  • November 24, 2014

我已經設置了一個 Active Directory 伺服器並配置了 LDAP-over-SSL,它適用於域上的機器,但是因為它使用的是 AD 證書服務提供的證書,所以它會在其他地方引起問題。

我正在嘗試使用 Debian 框連接到 LDAP-over-SSL 埠,openssl s_client但出現此錯誤:

Verify return code: 21 (unable to verify the first certificate)

我已將新的根 CA 證書添加到/usr/share/ca-certificates/extra/my-new-root-ca.crt並執行update-ca-certificates,並且使用此命令有效:

openssl s_client -CAfile /usr/share/ca-certificates/extra/my-new-root-ca.crt -showcerts -connect my.domain.com:636

而這:

openssl s_client -showcerts -connect my.domain.com:636

在輸出的頂部給我帶來了這些錯誤:

depth=0
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0
verify error:num=27:certificate not trusted
verify return:1
depth=0
verify error:num=21:unable to verify the first certificate
verify return:1

另外,這個命令:

ldapsearch -d8 -x -LLL -H ldaps://my.domain.com -D cn=username -w password -b "dc=my,dc=domain,dc=com" -s sub "(objectClass=user)" givenName

讓我得到這個輸出:

TLS: can't connect: (unknown error code).
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

因此,看起來既不是openssl s_client也不ldapsearch是從/etc/ssl/certs/ca-certificates.crt. 實際上是否有可能讓 openssl 接受我的證書?

OpenSSL 可能有點.. 抽搐.. 關於它信任的證書 - 有時它不會使用系統的受信任證書儲存。openssl.cnf如果您願意讓它信任正確的商店,請調整其配置。

對於ldapsearch相同類型的交易 - 您需要設置受信任的證書ldap.conf以使其實際使用受信任的證書,該選項是TLS_CACERT.

引用自:https://serverfault.com/questions/646519