2017-08-03 3 views
0

python-ldapを使用して過去にldapsを介してWindows 2012 R2サーバーに接続しました。python-ldapからwindows server 2016のldapsに接続できません

のpythonコード:私はこのために使用される手順は以下の通りであった

import ldap 
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER) 
ldap.set_option(ldap.OPT_DEBUG_LEVEL, 255) 
ip = '<redacted>' 
url = "%s://%s:%d" % ('ldaps', ip, 636) 
ld = ldap.initialize(url) 
ld.protocol_version = 3 
ld.set_option(ldap.OPT_REFERRALS, ldap.OPT_OFF) 
user = '<redacted>' 
passwd = '<redacted>' 
ld.simple_bind_s('<redacted>\%s' % user, passwd) 

およびWindows Server上の

が、私は「AD CSの役割を追加するには、「サーバ管理」を使用して、ルートを作成しました証明書。私は証明書を検証することに気を使わず、何らかの暗号化を使うだけです。ルート証明書を作成した後、サーバー上でLDAPSが有効になり、このコードはエラーなく実行されます。

今、私はWindowsサーバ2016で全く同じ手順に従っており、結果はあまり良くありません。私は同じスクリプトからいくつかのエラーを得ることができました。通常、「予期しない長さのTLSパケットが受信されました。または 'プッシュ機能でエラーが発生しました。'私は数時間を探しましたが、私は解決策を見つけることができませんでした。 Windowsサーバーの設定に余分な手順が必要かどうか、誰かが知っていますか?

私がテストしているクライアントは、python 2.7とubuntu 14.04です。 pip2.7はpython-ldapライブラリを最新バージョンに更新しました。 Lereは失敗したスクリプトの実行例です。

ldap_create 
ldap_url_parse_ext(ldaps://<redacted>:636) 
ldap_sasl_bind 
ldap_send_initial_request 
ldap_new_connection 1 1 0 
ldap_int_open_connection 
ldap_connect_to_host: TCP <redacted>:636 
ldap_new_socket: 3 
ldap_prepare_socket: 3 
ldap_connect_to_host: Trying <redacted>:636 
ldap_pvt_connect: fd: 3 tm: -1 async: 0 
TLS: can't connect: Error in the push function.. 
ldap_err2string 
Traceback (most recent call last): 
    File "test_ldap.py", line 13, in <module> 
    ld.simple_bind_s('<redacted>\%s' % user, passwd) 
    File "/usr/local/lib/python2.7/dist-packages/ldap/ldapobject.py", line 228, in simple_bind_s 
    msgid = self.simple_bind(who,cred,serverctrls,clientctrls) 
    File "/usr/local/lib/python2.7/dist-packages/ldap/ldapobject.py", line 222, in simple_bind 
    return self._ldap_call(self._l.simple_bind,who,cred,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls)) 
    File "/usr/local/lib/python2.7/dist-packages/ldap/ldapobject.py", line 108, in _ldap_call 
    result = func(*args,**kwargs) 
ldap.SERVER_DOWN: {'info': 'Error in the push function.', 'errno': 104, 'desc': "Can't contact LDAP server"} 

答えて

0

これは私が分かりませんが、これらのウィンドウの1つです。次の日に仕事に入った後、上記の同じコードが作業を開始したばかりです。 Windowsサーバは、LDAPSが接続できるようにするために何時間もかかることがあります。

関連する問題