Voici les étapes que j'ai suivies pour résoudre ce problème :
Redémarrez le serveur en mode sans échec (maintenez la touche shift enfoncée pendant le redémarrage).
Laissez-le tourner au ralenti pendant un moment (apparemment, il nettoie les caches dans ce mode).
Arrêter le serveur slapd existant
sudo launchctl unload /System/Library/LaunchDaemons/org.openldap.slapd.plist
Définissez le GUID correct du certificat dans le fichier /etc/openldap/slapd_macosxserver.conf . C'est ce que l'on peut constater à partir du contenu de la /etc/certificats répertoire
sudo sed -e 's/oldguid/newguid/' /etc/openldap/slapd_macosxserver.conf >/tmp/conffile
sudo mv /tmp/conffile /etc/openldap/slapd_macosxserver.conf
Supprimez les valeurs des certificats TLS configurés du fichier /etc/openldap/slapd.d/cn=config.ldif
sudo vi /etc/openldap/slapd.d/cn=config.ldif
remove any lines beginning with olcTLSCertificate
Redémarrez le serveur slapd
sudo launchctl load /System/Library/LaunchDaemons/org.openldap.slapd.plist
Redémarrez le serveur en mode standard.
Ensuite, depuis un ordinateur client sous linux ou mac osx, vérifiez que vous pouvez vous connecter via SSL et que les certificats sont corrects en utilisant la commande
openssl s_client -connect ldap.yourdomain:636 -showcerts
En cas de succès, vous obtiendrez une copie des certificats de votre serveur ainsi qu'une description détaillée de la connexion :
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)
Quelques autres notes :
- Apple suggère que vous pouvez utiliser un certificat auto-signé et personnel chaînes de certificats ( http://support.apple.com/kb/ht3745 ). J'utilise une chaîne auto-signée auto-signée et c'est réussi.
- Le port 636 est le port standard de ldaps et le port utilisé par OpenDirectory (slapd).
- TLS1 est supporté comme le montre le test de connexion openssl.
- Les différences entre les noms DNS et les noms d'hôtes n'ont pas d'importance (j'ai essayé les deux méthodes avec un redémarrage entre les deux).
- La différence de reverse DNS n'a pas d'importance (j'ai essayé les deux méthodes avec un redémarrage entre les deux).