StartTls, Problema de ApacheDS

He estado luchando para que Start Tls funcione para mi servidor ldap. He configurado un almacén de claves y una contraseña en un archivo de contexto de primavera. Mi configuración parece funcionar para SSL, pero Star Tls me está poniendo la piel de gallina. He agregado StarTlsHandler como ExtendedOperationHandler en el contenedor de mi servidor LDAP. ¿Necesito configurar algo más también?

Estoy usando JDK 1.6.0_15

El almacén de claves y la contraseña están codificados de forma rígida en este momento, parecen estar bien cuando uso SSL o depuro.

Estoy usando JLdap Client para probar mi implementación.

Aquí hay un fragmento de código que he agregado para Handler: ldapServer.setKeystoreFile ("C: /jdk/dgekey.ks"); ldapServer.setCertificatePassword ("secreto"); ldapServer.addExtendedOperationHandler (nuevo StartTlsHandler ());

A continuación, puede ver el seguimiento de la pila en el lado del servidor, el seguimiento del cliente está más abajo:

2011-05-10 12: 51: 29,345 [rThread-4861-21] DEBUG [org.apache.directory.server.ldap.handlers.extended.StartTlsHandler] Configuración del servicio LDAP 2011-05-10 12: 51: 29,345 [rThread -4861-21] DEBUG [org.apache.directory.server.ldap.handlers.extended.StartTlsHandler] provider = SUN versión 1.6 2011-05-10 12: 58: 31,029 [rThread-4861-21] ERROR [org.apache .directory.server.core.security.CoreKeyStoreSpi] ERR_68 Error al intentar extraer la clave. java.lang.IllegalStateException: ERR_436 ¡Los nombres utilizados para los principales deben normalizarse!

**** Seguimiento del cliente a través de javax.net.debug = all; ****

keyStore es: C: / jdk / cacerts keyStore tipo es: jks keyStore proveedor es: init keystore init keymanager de tipo SunX509 trustStore es: C: \ jdk \ cacerts trustStore tipo es: jks trustStore proveedor es: init truststore agregando como certificado de confianza: Asunto: CN = SwissSign Platinum CA - G2, O = SwissSign AG, C = CH Emisor: CN = SwissSign Platinum CA - G2, O = SwissSign AG, C = CH Algoritmo: RSA; Número de serie: 0x4eb200670c035d4f Válido desde el miércoles 25 de octubre a las 10:36:00 CEST de 2006 hasta el sábado 25 de octubre a las 10:36:00 CEST de 2036

Activación de inicialización de SecureRandom completada SecureRandom %% Sin sesión de cliente almacenada en caché *** ClientHello, TLSv1 RandomCookie: GMT: 1288255192 bytes = {100, 146, 27, 29, 47, 10, 97, 247, 253, 145, 49, 147 , 239, 157, 90, 4, 34, 15, 99, 243, 191, 156, 251, 25, 64, 42, 210, 231} ID de sesión: {} Suites de cifrado: [SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_CABC_128_SHA, TLS_RSA_WITH_CSBC_SAES_128 TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,] métodos de compresión SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA: {0}


[escribir] Hash MD5 y SHA1: len = 73 0000: 01 00 00 45 03 01 4D C9 37 D8 64 92 1B 1D 2F 0A ... E..M.7.d ... /. 0010: 61 F7 FD 91 31 93 EF 9D 5A 04 22 0F 63 F3 BF 9C a ... 1 ... Z. ". C ... 0020: FB 19 40 2A D2 E7 00 00 1E 00 04 00 05 00 2F 00 .. @.......... /. 0030: 33 00 32 00 0A 00 16 00 13 00 09 00 15 00 12 00 3.2 ............. 0040: 03 00 08 00 14 00 11 01 00 ....... .. principal, ESCRIBIR: Protocolo de enlace TLSv1, longitud = 73 [escritura] Hash MD5 y SHA1: len = 98 0000: 01 03 01 00 39 00 00 00 20 00 00 04 01 00 80 00 .... 9 .... ...... 0010: 00 05 00 00 2F 00 00 33 00 00 32 00 00 0A 07 00 .... / .. 3..2 ..... 0020: C0 00 00 16 00 00 13 00 00 09 06 00 40 00 00 15 ............ @ ... 0030: 00 00 12 00 00 03 02 00 80 00 00 08 00 00 14 00 ........ ........ 0040: 00 11 4D C9 37 D8 64 92 1B 1D 2F 0A 61 F7 FD 91 ..M.7.d ... /. A ... 0050: 31 93 EF 9D 5A 04 22 0F 63 F3 BF 9C FB 19 40 2A 1 ... Z. ". C ..... @ 0060: D2 E7 .. principal, ESCRIBIR: Mensaje de saludo del cliente SSLv2, longitud = 98 principal, LEER: Alerta TLSv1, longitud = 2 principal, RECV TLSv1 ALERTA: fatal, handshake_failure principal, llamado closeSocket () principal, manejo de excepción: javax. net.ssl.SSLHandshakeException: alerta fatal recibida: handshake_failure Error: LDAPException: no se pudo negociar una conexión segura (91) Error de conexión javax.net.ssl.SSLHandshakeException: alerta fatal recibida: handshake_failure

preguntado el 10 de mayo de 11 a las 13:05

1 Respuestas

Actualmente, TlsHandler solo puede leer el certificado de la entrada del sistema uid = admin, ou =. ¿Puede intentarlo después de configurar su certificado y claves a los valores de atributo apropiados de la entrada de administrador (uid = admin, ou = system)? Intentaré arreglar esto en el último baúl. (Apreciaría si puede presentar un informe de error).

contestado el 11 de mayo de 11 a las 00:05

@kayyagri Gracias por la ayuda. ¿Dónde puedo informar de este error? No encontré ningún enlace en ApacheDs sitr directory.apache.org/apacheds/1.5/downloads.html En segundo lugar, ¿cómo puedo solucionar rápidamente este problema ya que la fecha límite se acerca en unos días? NODO.NODO

La entrada uid = admin, ou = system tiene los atributos, privateKey, publicKey y certificate reemplazan los valores existentes con las claves y el certificado que tiene (puede usar Apache Directory Studio para hacerlo más fácil). Puede informar el problema aquí [issues.apache.org/jira/browse/DIRSERVER] - kayyagari

Hola de nuevo @kayyagri y gracias por la respuesta, copié el certificado predeterminado presente en el servidor ApacheDs, generé un almacén de claves a partir de ese certificado y proporcioné la ruta de este almacén de claves a mi archivo de contexto ldap / spring. Pero sigo recibiendo el mismo error. El certificado y el almacén de claves que funcionan con apacheD independientes no funcionan cuando los uso a través de mi implementación de ldap. ¿Debo configurar algo más también? - NODO.NODO

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.