1 回答

TA貢獻1803條經驗 獲得超6個贊
gopkg.in/ldap.v2不支持 URI 尋址(即您不能將方案放在ldap://網絡ldaps://地址之前)。
注意: 通過DialURLgopkg.in/ldap.v3支持 URI 撥號 ( ) 。ldaps://test.com
如果您使用gopkg.in/ldap.v2,您仍然可以建立直接 TLS 連接,但您必須使用該功能DialTLS,并使用網絡地址(不是 URI):
// addr = "10.1.30.47:389"
// tlsAddr = "10.1.30.47:636"
// conn, err = ldap.Dial("tcp", addr) // non-TLS
// serverName = "test.com" TLS cert name will be verified
// serverName = "" TLS verify will be disabled (DON'T DO THIS IN PRODUCTION)
tlsConf, err := getTLSconfig(serverName)
if err != nil { /* */ }
conn, err = ldap.DialTLS("tcp", tlsAddr, tlsConf)
上面需要 a *tls.Config,所以使用一個輔助函數,如:
func getTLSconfig(tlsName string) (tlsC *tls.Config, err error) {
if tlsName != "" {
tlsC = &tls.Config{
ServerName: tlsName,
}
return
}
log.Println("No TLS verification enabled! ***STRONGLY*** recommend adding a trust file to the config.")
tlsC = &tls.Config{
InsecureSkipVerify: true,
}
return
}
- 1 回答
- 0 關注
- 158 瀏覽
添加回答
舉報