gpt4 book ai didi

c++ - 无法通过 SSL 将示例程序绑定(bind)到 LDAP 服务器(ldaps ://)

转载 作者:IT王子 更新时间:2023-10-29 00:59:59 26 4
gpt4 key购买 nike

我这里有一个示例程序试图连接到安全端口 (ldaps://) 上的 LDAP 服务器,但是,该示例程序无法绑定(bind)到服务器。

#define LDAP_DEPRECATED 1
#include <stdio.h>
#include <ldap.h>

#define BIND_DN "dc=example,dc=com"
#define BIND_PW "secret"

int main() {
LDAP *ld;
int rc;
int reqcert = LDAP_OPT_X_TLS_NEVER;
int version = LDAP_VERSION3;
int ret(0);

if (ldap_initialize (&ld, "ldaps://192.168.1.51:10636")) {
perror("ldap_init"); /* no error here */
return(1);
}

ldap_set_option (ld, LDAP_OPT_PROTOCOL_VERSION, &version);
ldap_set_option (ld, LDAP_OPT_X_TLS_REQUIRE_CERT, &reqcert);

rc = ldap_bind_s(ld, BIND_DN, BIND_PW, LDAP_AUTH_SIMPLE);

if( rc != LDAP_SUCCESS )
{
fprintf(stderr, "ldap_simple_bind_s: %s\n", ldap_err2string(rc) );
return( 1 );
}
printf("Initial Authentication successful\n");
ldap_unbind(ld);
}

但是,使用 START_TLS,示例程序成功绑定(bind)到在端口 10389 上运行的 LDAP 服务器。ldapsearch 客户端能够连接到服务器并搜索用户基础树。但是上面的示例程序没有。

要让它与 START_TLS 一起工作:这是我添加的内容:

ldap_set_option (ld, LDAP_OPT_X_TLS_REQUIRE_CERT, &reqcert);    
rc = ldap_start_tls_s(ld, NULL, NULL);
if (rc != LDAP_SUCCESS) {
printf("ldap_start_tls() %s",ldap_err2string(ret));
}

有人可以指出我在这里通过 ldaps://绑定(bind)到 LDAP 服务器缺少什么吗??

最佳答案

编辑/etc/openldap/ldap.conf,添加行:

TLS_REQCERT never

然后再试一次。

关于c++ - 无法通过 SSL 将示例程序绑定(bind)到 LDAP 服务器(ldaps ://),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16962248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com