この問題を解決するために私が行った手順は次のとおりです。
サーバーをセーフモードで再起動します(再起動中にShiftキーを押し続けます)
しばらくアイドル状態にします(明らかに、このモードではキャッシュを消去しています)
既存のslapdサーバーを停止します
sudo launchctl unload /System/Library/LaunchDaemons/org.openldap.slapd.plist
ファイル/etc/openldap/slapd_macosxserver.confに正しい証明書GUIDを設定します。これは、/ etc / certificatesディレクトリの内容から確認できます。
sudo sed -e 's/oldguid/newguid/' /etc/openldap/slapd_macosxserver.conf >/tmp/conffile
sudo mv /tmp/conffile /etc/openldap/slapd_macosxserver.conf
ファイル/etc/openldap/slapd.d/cn=config.ldifから構成済みのTLS証明書の値を削除します
sudo vi /etc/openldap/slapd.d/cn=config.ldif
remove any lines beginning with olcTLSCertificate
slapdサーバーを再起動します
sudo launchctl load /System/Library/LaunchDaemons/org.openldap.slapd.plist
サーバーを標準モードで再起動します。
次に、LinuxまたはMac OSXを使用するクライアントコンピューターから、SSLを介して接続できること、およびコマンドを使用して証明書が正しいことを確認します。
openssl s_client -connect ldap.yourdomain:636 -showcerts
成功すると、サーバー証明書のダンプと接続の詳細説明が表示されます。
No client certificate CA names sent
---
SSL handshake has read 5209 bytes and written 807 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 4096 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : AES256-SHA
Session-ID: C8E0F4A4ED24021DB4D98ACF5A9ACDC2293BC3961BF2AE90026115D899369E73
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket:
...
Start Time: 1400140597
Timeout : 7200 (sec)
Verify return code: 0 (ok)
その他の注意事項:
- Appleは、自己署名証明書と独自の証明書チェーン(http://support.apple.com/kb/ht3745)を使用できることを推奨しています。私は自己署名チェーンを使用し、成功しています。
- ポート636は標準のldapsポートであり、OpenDirectory(slapd)が使用するポートです。
- openssl接続テストからわかるように、TLS1がサポートされています
- 異なるDNS名とホスト名は重要ではありません(両方の方法で再起動を試みました)
- リバースDNSの違いは問題ではありません(リブートして両方の方法を試しました)