希
我开始学习 Flask,但是当我按照这个文档
我收到这个错误...奇怪的是使用 ldapsearch 一切都正常....
使用:
- Ubuntu Focal
- python3.8
- python3-flask 1.1.1-2
- python3-flask-ldapconn 0.7.2-1
- python3-ldap3 2.4.1-2
- python3-openssl 19.0.0-1build1
- openssl 1.1.1f-1ubuntu1
- slapd 2.4.49+dfsg-2ubuntu1
ldap.conf:
BASE dc=contatogs,dc=com,dc=br
URI ldap://zeus7.contatogs.com.br
SIZELIMIT 0
TIMELIMIT 0
TLS_REQCERT demand
TLS_CACERT /etc/ssl/contatogs.com.br/cacert.pem
烧瓶的一部分:
from flask import Flask, render_template
from flask_ldapconn import LDAPConn
app = Flask(__name__)
ldap = LDAPConn(app)
app.config['SECRET_KEY'] = 'lihflhdlkfhlkfh'
import ssl
LDAP_SERVER = 'zeus7.contatogs.com.br'
LDAP_PORT = 389
LDAP_BINDDN = 'cn=admin,dc=contatogs,dc=com,dc=br'
LDAP_SECRET = 'adminldap'
LDAP_TIMEOUT = 0
LDAP_USE_TLS = True # default
LDAP_REQUIRE_CERT = ssl.CERT_NONE # default: CERT_REQUIRED
LDAP_CA_CERTS_FILE = '/etc/ssl/contatogs.com.br/cacert.pem'
LDAP_CLIENT_PRIVATE_KEY = '/etc/ssl/contatogs.com.br/private/zeus7.contatogs.com.br.key.pem'
LDAP_CLIENT_CERT = '/etc/ssl/contatogs.com.br/newcerts/zeus7.contatogs.com.br.crt.pem'
当使用 ldapseach 时可以:
ldapsearch -xLLLZZ -D cn=admin,dc=contatogs,dc=com,dc=br -w adminldap -H ldap://zeus7.contatogs.com.br | wc -l
结果:5862
我的错误在哪里?
先谢谢了
第二轮学习了更多关于ldap3的知识后,我看到了同样的错误( https://ldap3.readthedocs.io/en/latest/tutorial_intro.html)
python3
Python 3.8.2(默认,2020 年 3 月 13 日,10:14:16)
[GCC 9.3.0] 在 Linux 上输入“help”、“copyright”、“credits”或“license”获取更多信息。
从 ldap3 导入服务器、连接、全部、Tls
导入 SSL
tls_configuration = Tls(验证=ssl.CERT_REQUIRED,版本=ssl.PROTOCOL_TLSv1)
服务器 = 服务器('ipa.demo1.freeipa.org',use_ssl=True,tls=tls_configuration)
conn = 连接(服务器)
conn.打开()
回溯(最近一次调用最后一次):文件“”,第 1 行,在文件“/usr/lib/python3/dist-packages/ldap3/strategy/sync.py”,第 56 行,打开 BaseStrategy.open(self,reset_usage,read_server_info)文件“/usr/lib/python3/dist-packages/ldap3/strategy/base.py”,第 141 行,打开引发 exception_history0(exception_history[0][2]) ldap3.core.exceptions.LDAPSocketOpenError: (LDAPSocketOpenError('套接字 ssl 包装错误:[SSL] 内部错误 (_ssl.c:1108)'),)
也许是关于 ssl/tls 的内容
答案1
尝试更改 SSL 配置以接受旧版本的 TLS。
在 Ubuntu 上编辑 /etc/ssl/openssl.cnf || 在 RHEL 8.1 中:/etc/crypto-policies/back-ends/opensslcnf.config 并编辑以下内容:
MinProtocol = TLSv1
CipherString = DEFAULT:@SECLEVEL=1
请注意,这对安全是一个严重的威胁,但您可以使用它进行测试,看看是否有帮助。
參考文獻:
https://github.com/cannatag/ldap3/issues/385
我希望它有帮助!