[〜#〜] ldaps [〜#〜]を介してWindow Server 2012(おそらくR2)でActive Directoryに接続しようとすると、ldapsearchは次のエラーのいずれかを生成します(より長い出力の終わりに):
$ ldapsearch -H ldaps://my.ad.com -v -b "dc=my,dc=ad,dc=com"
...
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
additional info: A TLS packet with unexpected length was received.
または
$ ldapsearch -H ldaps://my.ad.com -v -b "dc=my,dc=ad,dc=com" -D "[email protected]"
...
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
または
$ ldapsearch -H ldaps://my.ad.com -d 1 -v -b "dc=my,dc=ad,dc=com" -D "[email protected]" -W
...
TLS: can't connect: A TLS packet with unexpected length was received..
ldap_err2string
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
SSL証明書がインストールされ、s_clientを使用して検証されています。例:
openssl s_client -connect my.ad.com:636 -CApath /etc/ssl/certs/
...次のように終わる有効な出力を生成します:
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-SHA384
Session-ID: 2938000006304A580F4FA7C47F3C0C64FCF43B83B666D24B247775E24DC6B5B1
Session-ID-ctx:
Master-Key: C835DACE990D164C2F97F594B1D6989179735CE38AD822165F7C20C99C826DEE7E91816693AA72B08ADD85EDB6493578
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1490979674
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
この問題は、Windows2012のTLS1.2実装がgnutls
などの一部のバージョンのLinuxライブラリと互換性がないために発生する可能性があります。
これが問題である場合は、TLS1.2を無効にすると機能が復元されます。次のオプションが利用できる場合があります。
Linux CLIの場合(感嘆符をエスケープする必要がある場合があります。見つかった ここ ):
export LDAPTLS_CIPHER_SUITE=NORMAL:!VERS-TLS1.2
LinuxではPHP( here と here が見つかりました)):
putenv(‘LDAPTLS_CIPHER_SUITE=NORMAL:!VERS-TLS1.2’);
Windows Server 2012では、簡潔な手順が見つかりませんが、これらは レジストリエントリ です。レジストリを直接編集することは危険な場合があるため、注意して使用してください。