
當 ldap.conf 檔案中啟用了 ssl start_tls 選項時,Ubuntu ldap 驗證無法在我的客戶端上執行。當我註解掉 ssl start_tls 時我可以進行身份驗證。
我升級了 ldap 伺服器證書,從那時起,如果啟用了 ssl,用戶將無法再在我的 ubuntu 10.04 用戶端電腦上進行身份驗證。發生的變化:
Cert upgraded from 1024 to 2048 bit
now is a wildcart cert and use it to be a self-signed cert
encryption algorithm is now shaw512 (use to be md5)
我的 auth.log 有一些錯誤:
nss-ldap: do_open: do_start_tls 失敗:stat=-1
新憑證正在起作用,因為我有一些其他用戶端使用新憑證(舊的 centOS 機器)進行身份驗證。
有人知道為什麼我不能再在客戶端上使用 LDAP 和 ssl 嗎?
答案1
是否有簽名層次結構(即非自簽名)? 「通配符」和「自簽名」並不排斥。商業通配符憑證將具有層次結構,即一個或多個中間 CA 和一個根 CA。
sha-512 或 md5 是哈希值在憑證簽署中使用,它們不是加密演算法。這些用於驗證憑證完整性,用於連線的密碼是獨立協商的。
我認為最可能的原因是 Ubuntu 10 不支援 sha512(更準確地說,「sha512WithRSAEncryption」);或電腦缺少一個或多個 CA 憑證(中間或根),因此無法完成全鏈驗證。
您可以透過執行(在 Ubuntu 10 機器上)查看 openssl 是否可以處理伺服器的新憑證:
openssl x509 -in newservercert.crt -noout -text
儘管這可能不是決定性的。這也可能有幫助:
ldapsearch -x -Z -v -h your.ldap.server
(使用 GnuTLS 代替 OpenSSL 的可能性很小,對此無能為力,抱歉!)
您可以透過將以下內容新增至 /etc/ldap/ldap.conf 檔案來確認或否認鏈問題:
TLS_REQCERT never
如果這有幫助,您應該獲取鏈中缺少的部分,並將它們添加到本地儲存中,具體實作方式取決於客戶端配置,檢查 /etc/ldap/ldap.conf 中的「TLS_CACERT」和/或 TLS_CACERTDIR指令是您開始的地方。
不太可能的原因包括:
- 無法檢查 CRL(檢查 ldap.conf 以查看它是否已啟用)
假設沒有其他任何變化,為了完整性,將不太可能的原因納入:
- 客戶端不支援伺服器協定版本或密碼集
- 支援的 SASL 機制發生變化
答案2
不確定你是否解決了這個問題。我遇到了同樣的情況。 12.04 使用 tls 連接到 ldap 伺服器,但 10.04 沒有。我的解決方案是添加一行/etc/ldap/ldap.conf
:
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
10.04客戶端可以使用tls連接到ldap伺服器。