通过SSL和TLS绑定和验证LDAP服务器
问题描述:
我正在编写一个简单的LDAP客户端来通过SSL连接到LDAP服务器。我正在使用“openldap-2.4.35”通过SSL和TLS绑定和验证LDAP服务器
到目前为止,我试图做一个没有任何加密机制的简单绑定。 这是我曾尝试代码:
#define LDAP_DEPRECATED 1
#include<stdio.h>
#include<ldap.h>
#define HOST "ldap://192.168.1.95:389"
#define BASEDN "cn=manager,dc=ashwin,dc=com"
int main(){
LDAP *ld;
int rc;
LDAPMessage *message;
if(ldap_initialize(&ld, HOST))
{
perror("ldap_initialize");
return(1);
}
printf("LDAP initialized\n");
rc = ldap_simple_bind_s(ld, BASEDN, "secret");
if(rc != LDAP_SUCCESS)
{
fprintf(stderr, "ldap_simple_bind_s: %s\n", ldap_err2string(rc));
return(1);
}
printf("Successful authentication\n");
return 0;
}
此连接到LDAP和绑定用户。如果ldap_simple_bind_s
成功,则认证成功。
是否有任何文档用于构建LDAP客户端以连接到SSL和StartTLS上的LDAP服务器?
答
有如何建立在SSL上的MSDN一个LDAP连接(Win32应用程序)的详细示例:
Example Code for Establishing a Session over SSL
希望这将是有用的,
答
HOST "ldap://192.168.1.95:389" should be: HOST "ldaps://192.168.1.95:636"
而且, /etc/openssl/ldap.conf,请确保您的*根证书包含在pem文件中,例如:
TLS_CACERT /my/top/root/certs.pem
如果您没有TLS_CACERT行,请添加一行并确保该pem文件是可读的:
cat /my/top/root/certs.pem
-----BEGIN CERTIFICATE-----
MII...
....I=
-----END CERTIFICATE-----
感谢您的信息。任何资源为Linux平台? – 2013-05-07 09:15:22
对于linux,您可以检查[LDAP Libraries for C](http://www.novell.com/developer/ndk/ldap_libraries_for_c.html)。有几个示例包括TLS连接:[用于TLS连接的示例代码文件](http://www.novell.com/documentation/developer/samplecode/cldap_sample/starttls.c.html) – Bastien 2013-05-07 09:37:05