iT邦幫忙

0

windows AD TLS 設定。

今天在寫一支程式,想要連進AD改密碼,但是一開始怎樣都連接不上,後來查到windows AD要改密碼必須透過ldaps連線,於是照著門神大的這篇一步一步安裝 Windows 2012 AD LDAPs 安裝設定憑證 CA SSL TLS 必成功設定AD,用ldp.exe去測試是連線成功的。
但是遇到用程式連的時候,怎麼連都不成功。
一開始的設定如下:

l.set_option(ldap.OPT_REFERRALS, 0)
l.set_option(ldap.OPT_PROTOCOL_VERSION, 3)
l.set_option(ldap.OPT_X_TLS_CACERTFILE, os.getcwd()+"/ad.cer")
l.set_option(ldap.OPT_X_TLS,ldap.OPT_X_TLS_DEMAND)
l.set_option(ldap.OPT_X_TLS_DEMAND, True)
l.set_option(ldap.OPT_DEBUG_LEVEL, 255)

在bind的時候都直接跳憑證錯誤。
後來改用:

ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)

反而成功了...甚至不用cert。

想請問2件事:
1.這樣DC到底有沒有用TLS?還是要另外設定?有什麼參考資料?
2.在程式中所使用的cert是從DC匯出的憑證嗎?


自問自答一下:
原因是因為我用自簽證書。

根據下面這篇參考資料:
https://stackoverflow.com/questions/3495739/ldap-connection-problem-with-self-signed-cert

ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_ALLOW)

加入這段才可以用證書登入並修改
這段是告訴openssl不要去外部驗證證書。

ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)

這段是忽略證書檢查,基本上就沒有安全性了。

froce iT邦大師 1 級 ‧ 2020-03-23 08:59:27 檢舉
自己解答一下。
沒辦法自己回答自己真是可惜。XD

1 個回答

0
isaac1022
iT邦新手 5 級 ‧ 2020-03-20 23:05:23

thx

我要發表回答

立即登入回答