Los siguientes fueron los pasos que tomé para resolver este problema:
Reinicie el servidor en modo seguro (mantenga presionada la tecla Mayús mientras reinicia)
Déjalo inactivo por un tiempo (al parecer, está limpiando las cachés en este modo)
Detener el servidor slapd existente
sudo launchctl unload /System/Library/LaunchDaemons/org.openldap.slapd.plist
Establezca el GUID del certificado correcto en el archivo /etc/openldap/slapd_macosxserver.conf . Esto se puede determinar a partir del contenido del directorio / etc / certificate
sudo sed -e 's/oldguid/newguid/' /etc/openldap/slapd_macosxserver.conf >/tmp/conffile
sudo mv /tmp/conffile /etc/openldap/slapd_macosxserver.conf
Elimine los valores de certificado TLS configurados del archivo /etc/openldap/slapd.d/cn=config.ldif
sudo vi /etc/openldap/slapd.d/cn=config.ldif
remove any lines beginning with olcTLSCertificate
Vuelve a iniciar el servidor slapd
sudo launchctl load /System/Library/LaunchDaemons/org.openldap.slapd.plist
Reinicia el servidor nuevamente en modo estándar.
Luego, desde un equipo cliente con Linux o Mac OSX, compruebe que puede conectarse a través de SSL y que los certificados son correctos utilizando el comando
openssl s_client -connect ldap.yourdomain:636 -showcerts
Si tiene éxito, obtendrá un volcado de sus certificados de servidor, así como una descripción detallada de la conexión:
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)
Algunas otras notas:
- Apple sugiere que puedes usar un certificado propio y autofirmado
cadenas ( enlace ). Yo uso un autofirmado
Cadena y tiene éxito.
- El puerto 636 es el puerto estándar de ldaps y es el puerto utilizado por OpenDirectory (slapd)
- Se admite TLS1 como se puede ver en la prueba de conexión de openssl
- Los nombres de DNS y los nombres de host diferentes no importan (intenté ambas maneras con un reinicio entre ellos)
- No importa el DNS inverso diferente (intenté en ambos sentidos con un reinicio entre ellos)