Windows SSL证书存储和Python LDAP

时间:2019-02-05 12:11:58

标签: python windows ssl ldap python-ldap

我使用Odoo通过python-ldap库与Windows Active Directory集成。我们有一个内部组织证书,应该在应该连接到AD服务器的系统上安装该证书。我不通过ldap.set_option方法控制证书,也不想覆盖此部分代码(Odoo上游代码的一部分)。

在Linux中,只需将CA证书添加到ca-certificates目录中,一切就可以正常工作。

在Windows下,将CA证书添加到Windows证书存储不会反映在python-ldap上,并给我错误:

CONNECT_ERROR: {'info': 'error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed (unable to get
 local issuer certificate)', 'desc': 'Connect error'}

产生错误的代码如下:

import ldap
uri = 'ldap://<server>:<port>'
conn = ldap.initialize(uri)
conn.start_tls_s()

我也尝试过寻找libldap解析的配置文件以覆盖CA证书目录,但是我找不到/etc/openldap/ldap.conf的相应Windows配置文件路径。

软件版本:

  • Python:2.7(在virtualenv内部)
  • Python-LDAP:2.5.2
  • Shell:Git Bash 4.4.23(1)-发行版(x86_64-pc-msys)/命令提示符
  • Windows:10
  • Odoo:10.0

1 个答案:

答案 0 :(得分:0)

我终于找到了使用documentation here来配置OpenLDAP的Windows路径;与我合作的路径:

  • ~/ldaprc = C:\Users\<username>\ldaprc(仅在Git Bash下工作)
  • ./ldaprc = <current working directory>\ldaprc(在Git Bash和命令提示符下有效)