Necesitamos conectar nuestro script php a LDAP a través de tls usando un certificado. La conexión LDAP funciona bien sin tls. Más detalles aquí /programming/15260252/how-to-use-multiple-tls-certificates-for-ldap-from-php-zend
Logramos conectarnos a través de tls desde Windows usando el navegador Softerra LDAP. Nos pidió que instalemos un certificado y si confiamos en él.
Mi resultado final es poder autenticarme con LDAP usando TLS de php. Me han dado un certificado de tipo .cer. Proviene de una máquina con Windows Exchange. Por lo que puedo ver, SLES admite certificados .pem. Entonces mi pregunta es ...
Q1: ¿Necesito convertir de .cer a .pem primero antes de poder instalar el certificado en el cliente (que es el servidor SLES) y finalmente Q2: cuál es la mejor manera de instalar este certificado en el servidor para que mi aplicación php pueda acceder a él y hacer su trabajo . Tenga en cuenta que en el servidor SLES necesitamos conectarnos a diferentes servidores LDAP.
En la actualidad si corremos
ldapsearch -H ldaps://localhost:9215 -W
obtenemos
Enter LDAP Password:
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (unable to get local issuer certificate)
Encontré mucha información buena aquí http://www.php.net/manual/de/function.ldap-connect.php#36156 y especialmente esta oración es importante a mis ojosOnce you've gotten the ldapsearch tool working correctly PHP should work also.
- SUSE Linux Enterprise Server 11 (x86_64)
- ldapsearch: @ (#) $ OpenLDAP: ldapsearch 2.4.26 (26 de septiembre de 2012 13:14:42) $ abuild @ baur: /usr/src/packages/BUILD/openldap-2.4.26/clients/tools (biblioteca LDAP: OpenLDAP 20426)
fuente
Respuestas:
Eso significa que el certificado en el servidor ha caducado o no es válido.
En cuanto a la solución alternativa, use la
LDAPTLS_REQCERT
variable para ignorar el certificado, por ejemplo:De lo contrario, puede importar el certificado y marcarlo como confiable.
fuente
ldap.conf
archivo existente para establecer elTLS_REQCERT
parámetro.No estoy seguro acerca de la conversión de pem a cer, pero para hacer que ldapsearch use certificados sin tener un ldap.conf o sin los permisos para modificar certificados globales, debería poder hacer esto:
fuente
Utilizando
elimina la validación del certificado del servidor LDAP. Esto anula la seguridad proporcionada por TLS en primer lugar. No hagas esto. Debe corregir los certificados si hay un problema y luego proporcionar al cliente LDAP la autoridad de certificación según lo descrito por tink.
fuente