【发布时间】:2014-08-21 10:59:54
【问题描述】:
我想建立一个从 Linux(Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux) 客户端到 Windows 2012 服务器的安全 ldap 连接 (ldaps),以更改用户活动目录中的密码,通过 php。
为此,我在服务器上创建了一个自签名证书(使用 Windows 服务器管理器),但是当我尝试连接时,我收到以下错误(通过打开调试选项:
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);):
ldap_create
ldap_url_parse_ext(ldaps://xxx.xxx.xxx.xxx)
ldap_bind_s
ldap_simple_bind_s
ldap_sasl_bind_s
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP xxx.xxx.xxx.xxx:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying xxx.xxx.xxx.xxx:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
TLS: peer cert untrusted or revoked (0x42)
TLS: can't connect: (unknown error code).
ldap_err2string
PHP Warning: ldap_bind(): Unable to bind to server
似乎客户端无法信任证书,因为它是自签名的。
我应该采取哪些步骤来建立安全连接?客户端证书存储在/etc/ssl/certs/ca-certificates.crt
【问题讨论】:
-
您需要信任服务器的证书并执行检查,还是只需要加密?你的 ldap.conf 文件的内容是什么?
-
只需一行
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
标签: php active-directory ldap ssl-certificate client-certificates