如何使用证书使ldapsearch在TLS上的SLES上工作?


12

我们需要使用证书将php脚本通过tls连接到LDAP。无需tls,LDAP连接就可以很好地工作。此处有更多详细信息/programming/15260252/how-to-use-multiple-tls-certificates-for-ldap-from-php-zend

我们设法使用Softerra LDAP浏览器通过Windows的tls连接。它要求我们安装证书以及我们是否信任它。

我的最终结果是能够使用php中的TLS与LDAP进行身份验证。我已获得.cer类型的证书。它来自Windows Exchange计算机。从我可以看到,SLES支持.pem证书。所以我的问题是...

Q1:我需要先从.cer转换为.pem,然后才能在客户端(SLES服务器)上安装证书,最后Q2:在服务器上安装此证书的最佳方法是什么,以便我的php应用程序可以访问并完成其工作。请注意,在SLES服务器上,我们需要连接到不同的LDAP服务器。

目前如果我们运行

ldapsearch -H ldaps://localhost:9215 -W

我们得到

Enter LDAP Password: 
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (unable to get local issuer certificate)

我在这里http://www.php.net/manual/de/function.ldap-connect.php#36156找到了很多很好的信息,尤其是这句话在我眼中很重要Once you've gotten the ldapsearch tool working correctly PHP should work also.


  • SUSE Linux Enterprise Server 11(x86_64)
  • ldapsearch:@(#)$ OpenLDAP:ldapsearch 2.4.26(2012年9月26日13:14:42)$ abuild @ baur:/usr/src/packages/BUILD/openldap-2.4.26/clients/tools(LDAP库: OpenLDAP 20426)

调试的另一种方法是忽略LDAP部分,而仅查看SSL:您可以运行“ openssl s_client -connect localhost:9215”吐出服务器使用的证书和验证结果。
科夫(Kowh)2013年

好。我将其传递给开发人员。我个人仍然不了解如何安装证书,并且当我想要访问证书时将证书链接到服务器。
Radek

Answers:


25

这意味着服务器上的证书已过期或无效。

至于解决方法,请使用LDAPTLS_REQCERT变量忽略证书,例如:

LDAPTLS_REQCERT=never ldapsearch -D "cn=drupal-test,ou=Services,dc=example,dc=com" -w my_pass -h ldap.example.com -b "ou=People,dc=example,dc=com" -s sub -x -ZZ "(uid=admin)"

否则,您可以导入证书并将其标记为受信任。


在没有现有ldap.conf文件可设置TLS_REQCERT参数的cygwin上也可以使用。
bvj

8

我不确定从pem到cer的转换,但是要使ldapsearch使用不带ldap.conf的证书或不带修改全局证书的权限,您应该可以这样做:

env LDAPTLS_CACERT=/path/to/cert ldapsearch

1

使用

LDAPTLS_REQCERT=never

删除LDAP服务器的证书验证。首先,这会使TLS提供的安全性失效。不要这样 如果存在问题,则应修复证书,然后按照tink的说明为LDAP客户端提供证书颁发机构。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.