1

LDAP 認証が次のエラーで機能しなくなりました:

{'info': 'The signature algorithm is not supported.', 'desc': "Can't contact LDAP server"}

以前は動作していましたが、OSx と RHEL7 でも同じコードが動作します。私のUbuntu 14.04では機能しません。

以下のコードは問題を模倣しています。

ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
l = ldap.initialize(url)
l.simple_bind_s(username,pwd)

私はこれが自己署名証明書を使用していることを知っています..この証明書がある物理的な場所があるのだろうか. 削除すると問題が解決する場合があります。

どんな助けでも大歓迎です。

編集:

ジュリアンが示唆したように、これはより LDAP の問題に見えます... ldapsearch を使用すると、同じエラー メッセージが表示されます。

$ ldapsearch -H ldaps://xxx.xxx.gov/ -b "OU=xxx" -x -d1
ldap_url_parse_ext(ldaps://xxx.xxx.gov/)
ldap_create
ldap_url_parse_ext(ldaps://xxx.xxx.gov:636/??base)
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP xxx.xxx.gov:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 128.219.164.41:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
TLS: can't connect: The signature algorithm is not supported..
ldap_err2string
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
4

2 に答える 2

1

これは LDAP (GNU TLS) の問題であり、Python の問題ではありません。gnutls26 セキュリティ更新により、md5 サポートが無効になりました。サーバーが md5 証明書を使用しているかどうかを確認するには、次を実行します。

openssl s_client -showcerts -connect xxx.xxx.xx:636 < /dev/null |  openssl x509 -noout -text > cert.txt

$ cat cert.txt | grep -i signature
Signature Algorithm: md5WithRSAEncryption
Signature Algorithm: md5WithRSAEncryption

当面の解決策は、gnutls26 をダウングレードするか、(可能であれば) LDAP サーバーによって提供される証明書を変更することです。

于 2016-01-18T13:22:32.283 に答える
0

とても奇妙です、私は今日から同じ問題を抱えています。Ubuntu 14.04 を更新して以来、PHP で LDAP サーバーに接続できません。

掘り下げた後、ldapsearchであなたと同じエラーが発生しました:

ldapsearch -H ldaps://172.22.5.52/ -b "OU=XXX" -x -d5
ldap_url_parse_ext(ldaps://172.22.5.52/)
ldap_create
ldap_url_parse_ext(ldaps://172.22.5.52:636/??base)
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP 172.22.5.52:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 172.22.5.52:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
TLS: can't connect: The signature algorithm is not supported..
ldap_err2string
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

あなたの投稿では、パケットが壊れているように思えます...

于 2016-01-14T15:03:27.047 に答える