将 Stretch 升级到 Buster authnz-ldap/mod-ldap 后无法使用 ldaps 连接到 2012R2 AD。
这是我的配置:
#Must be set to a low value to permit failover from a server to the other.
LDAPConnectionTimeout 1
LDAPRetries 1
# SSL
LDAPVerifyServerCert on
LDAPTrustedMode SSL
LDAPTrustedGlobalCert CA_BASE64 /etc/apache2/ssl/ca_der.cer
#LDAP SERVERS DECLARATION START
<AuthnProviderAlias ldap MyLDAPS>
AuthLDAPBindDN "CN=svc-otp,CN=Users,DC=otp,DC=local"
AuthLDAPBindPassword REDACTED #checked and working
# Search user
AuthLDAPURL "ldaps://ad03.otp.local/CN=Users,DC=otp,DC=local?userPrincipalName?sub?(&(memberOf:1.2.840.113556.1.4.1941:=CN=Admins,OU=2FA,OU=PCI,DC=otp,DC=local)(objectClass=user))"
</AuthnProviderAlias>
<LocationMatch /manage >
# Using this to bind
AuthType Basic
AuthName "USE YOUR user@domain ACCOUNT"
AuthBasicProvider MyLDAPS
require valid-user
</LocationMatch>
我试过openssl s_client -connect ad03.otp.local:636 -state -nbio
导致
CONNECTED(00000003)
Turned on non blocking io
SSL_connect:before SSL initialization
SSL_connect:SSLv3/TLS write client hello
SSL_connect:error in SSLv3/TLS write client hello
write R BLOCK
SSL_connect:error in SSLv3/TLS write client hello
read:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 306 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
然后我发现 /etc/ssl/openssl.conf 添加了
[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=2
我评论了这两行,openssl s_client 就像在 Stretch 上一样工作。
但是 Apache 总是抱怨无法连接...
我用谷歌搜索了很多类似的问题和 Apache 文档,但没有找到提示或解决方案。