我想通過OpenLDAP服務器從C++客戶端應用程序安全地進行身份驗證,例如使用SSL/TLS或SASL。我使用Windows 7 64位操作系統。安全LDAP身份驗證
我嘗試這個例子:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366105%28v=vs.85%29.aspx
但它在這個函數調用失敗: ULONG ldapConn = ldap_connect(pLdapConnection,NULL);
ldap_connect的返回碼是81(十進制)。
我已經安裝了OpenLDAP的我的電腦從這裏開始:
http://www.userbooster.de/en/download/openldap-for-windows.aspx
我用127.0.0.1(本地主機)作爲主機。
OpenLDAP的調試日誌看起來是這樣的:
TLS跟蹤:SSL_accept:SSLv3的刷新數據
tls_read:想= 5錯誤=未知錯誤
TLS跟蹤:SSL_accept:此爲SSLv3錯誤讀取客戶證書一
TLS跟蹤:SSL_accept:在SSLv3的錯誤讀取的客戶端證書甲
守護程序:1個描述符活動
守護程序:喚醒
守護程序:WSselect:聽= 2 active_threads = 0 TVP = NULL
守護程序:WSselect:聽= 3 active_threads = 0 TVP = NULL
根據日誌看來,這似乎與證書有關。 OpenLDAP的配置是從安裝包的大約默認情況下,例如:
TLSVerifyClient從未
TLSCipherSuite HIGH:MEDIUM:-SSLv2
TLSCertificateFile ./secure/certs/server.pem
TLSCertificateKeyFile ./secure/certs /server.pem
TLSCACertificateFile ./secure/certs/server.pem
是否有人知道爲什麼ldap_connect失敗?
還是有人知道一個有用的教程或有關此主題的C++代碼示例?我特別不清楚客戶端證書是如何鏈接到客戶端代碼的。換句話說,它是如何在客戶端C++代碼中定義的,在驗證期間獲取證書。
BR, 脫膜
謝謝你的迴應。我按照您的建議(TLSCipherSuite HIGH:MEDIUM:+ SSLv2)更新了OpenLDAP服務器slapd.conf文件,但似乎仍然無法正常工作。 的ldap_connect(pLdapConnection,NULL)調用仍然返回值81和OpenLDAP的調試日誌樣子(抱歉格式): TLS跟蹤:SSL_accept:SSLv3的刷新數據
tls_read:想= 5錯誤=未知錯誤
TLS跟蹤:SSL_accept:此爲SSLv3錯誤讀取客戶證書一個
TLS跟蹤:SSL_accept:此爲SSLv3錯誤讀取客戶證書一個
守護程序:1個描述
守護活動:喚醒
– Tuppu 2012-04-25 06:45:01
你有一些其他的想法?如果我在slapd.conf中配置了「TLSVerifyClient never」,您是否將證書視爲潛在問題還是其他問題?或者系統域可能導致一些問題? – Tuppu 2012-04-25 07:06:57