No se puede usar SSL o TLS para acceder al servidor de OpenDirectory ldap

4

No puedo conectarme con mi sistema openserver mediante una conexión SSL / TLS.

No hay problemas para comunicarse sin SSL en el puerto 389 y puede conectarse y recuperar información del directorio sin problemas.

Sin embargo, cuando se usa el puerto 636 y se esperan comunicaciones seguras, la conexión no se puede conectar.

El siguiente intento de conexión de openssl detalla la traza que indicaría que no se está estableciendo una conexión ssl.

LasiguienteimagenesdeServerAdmin,loqueindicaqueSSLestáhabilitadoysehaproporcionadouncertificadoparalaconexióndelservidor.

El puerto 636 está abierto en el servidor ldap, y no hay ningún firewall entre los dos hosts.

sauce:Java frank$ netstat -an | grep 636
tcp6       0      0  *.636                  *.*                    LISTEN
tcp4       0      0  *.636                  *.*                    LISTEN

Una conexión de telnet al puerto 636 en el servidor tiene éxito, lo que indica que no hay problemas de cortafuegos en juego.

¿Alguien puede proporcionar elementos adicionales para verificar e identificar la causa de este problema?

    
pregunta sweetfa 06.05.2014 - 03:15

1 respuesta

1

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:

  1. Apple sugiere que puedes usar un certificado propio y autofirmado cadenas ( enlace ). Yo uso un autofirmado Cadena y tiene éxito.
  2. El puerto 636 es el puerto estándar de ldaps y es el puerto utilizado por OpenDirectory (slapd)
  3. Se admite TLS1 como se puede ver en la prueba de conexión de openssl
  4. Los nombres de DNS y los nombres de host diferentes no importan (intenté ambas maneras con un reinicio entre ellos)
  5. No importa el DNS inverso diferente (intenté en ambos sentidos con un reinicio entre ellos)
respondido por el sweetfa 15.05.2014 - 10:57

Lea otras preguntas en las etiquetas