Active-Directory
openssl s_client 忽略 /usr/share/ca-certificates 中的自定義根 CA 證書
我已經設置了一個 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
.