gpt4 book ai didi

ssl - 尝试使用 TLS 连接到 LDAP 时出错 'LDAP Result Code 201 "ErrorNetwork": Invalid packet format'

转载 作者:IT王子 更新时间:2023-10-29 02:24:03 25 4
gpt4 key购买 nike

我正在尝试使用 http://www.github.com/mavricknz/ldap 通过 LDAP 和 TLS 创建身份验证服务当我使用以下代码仅使用基本身份验证时,一切正常。

conn := ldap.NewLDAPConnection(ldapHost, ldapPort)

conn.NetworkConnectTimeout = time.Duration(ldapConnTimeout) * time.Millisecond
conn.ReadTimeout = time.Duration(ldapReadTimeout) * time.Millisecond

if err := conn.Connect(); err != nil {
log.Println(err)
resp.WriteHeader(http.StatusInternalServerError)
return
}

defer conn.Close()

// bind to ldap
if err := conn.Bind(username, password); err != nil {
ldaperr := err.(*ldap.LDAPError)
if ldaperr.ResultCode == ldap.LDAPResultInvalidCredentials {
resp.Header().Set("WWW-Authenticate", `Basic realm="Item Codes Database"`)
resp.WriteHeader(http.StatusUnauthorized)
} else {
log.Println(err)
resp.WriteHeader(http.StatusInternalServerError)
}
return
}

但是当我尝试通过更改将 TLS 应用于我的代码时

conn := ldap.NewLDAPConnection(ldapHost, ldapPort)

ldap.NewLDAPTLSConnection(ldapHost, ldapPort, &tls.Config{})

它给我一个错误LDAP Result Code 201 "ErrorNetwork": Invalid packet format。该错误来自方法 conn.Connect(),当我深入研究它时,它甚至没有达到使用 TLS 配置或 TLS 标志的地步。

最佳答案

好的,我找到了我的解决方案。我需要将端口从 ldap 的 389 更改为 ldaps 的 636,因为我们使用 TLS 协议(protocol)。而且我还必须使用方法 NewLDAPSSLConnection 来建立隐式 TLS 连接。

我不确定为什么 NewLDAPTSLConnection 不起作用。它使用显式 TLS,要求我们首先建立一个正常连接(使用端口 389),然后尝试通过该连接启动 TLS。

关于ssl - 尝试使用 TLS 连接到 LDAP 时出错 'LDAP Result Code 201 "ErrorNetwork": Invalid packet format',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28559806/

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