Question

J'ai eu du mal à démarrer TLS pour que TLS fonctionne pour mon serveur LDAP. J'ai configuré un clés et un mot de passe dans un fichier de contexte de printemps. Ma configuration semble fonctionner pour SSL, mais Star TLS provoque la chair de poule. J'ai ajouté StartLShandler en tant qu'ExtendOperationHandler dans l'emballage de mon serveur LDAP. Dois-je également configurer quoi que ce soit d'autre.

J'utilise JDK 1.6.0_15

Les clés et le mot de passe sont codés en dur pour le moment, ils semblent OK lorsque j'utilise SSL ou Debug.

J'utilise le client JLDAP pour tester mon implémentation.

Voici un extrait de code que j'ai ajouté pour le gestionnaire: ldapserver.setkeystorefile ("c: /jdk/dgekey.ks"); ldapServer.setCertificatePassword ("secret"); ldapServer.adDExtendOperationHandler (new StartTLShandler ());

Ci-dessous, vous pouvez voir la trace de pile côté serveur, la trace du client est plus bas:

2011-05-10 12: 51: 29,345 [RTHREAD-4861-21] DEBUG [org.apache.directory.server.ldap.handlers.extended.starttlshandler] Définition du service LDAP 2011-05-10 12: 51: 29,345 [RTHREAD -4861-21] DEBUG [org.apache.directory.server.ldap.handlers.extended.starttlshandler] Provider = Sun version 1.6 2011-05-10 12: 58: 31,029 [rThread-4861-21] Erreur [org.apache .directory.server.core.security.corekeystorespi] err_68 a échoué lors de la tentative d'extraction de la clé. java.lang.illegalstateException: ERR_436 Les noms utilisés pour les directeurs doivent être normalisés! sur org.apache.directory.server.core.ldapprincipal. (ldapprincipal.java:76) sur org.apache.directory.server.core.security.corekeystorespi.gettlENTRY (corekeystorespi.java:84) at Org.apache.Directory. server.core.security.corekeystorespi.enginegetkey (corekeystorespi.java:231) sur java.security.keystore.getkey (keystore.java:763) sur com.sun.net.ssl.internal.ssl.sunx509keymanagell. (SUNX509KEKEKAGERIMPL.Java : 113) sur com.sun.net.ssl.internal.ssl.keymanagerfactoryimpl $ sunx509.EngineInit (keyManagerFactoryImpl.java:48) à javax.net.ssl.keymanagerfactory.init (keymanagerfactory.java:239) at org.apache. Directory.server.ldap.handlers.extended.starttlshandler.setldapserver (starttlshandler.java:170) sur org.apache.directory.server.ldap.ldapserver.startnetwork (ldapserver.java:542) à Org.apache.Directory.server. ldap.ldapserver.start (ldapserver.java:446) sur com..ldap.apacheds.ldapserverwrapper.afterpropertiesset (ldapserverwrapper.java:103) à org.springframework.beans.factory.support.abstractautowirecapa bleBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1469) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java: 519) sur org.springframework.beans.factory.support.abstractAutowireCapableBeanFactory.CreateBean (AbstractAutowireCapableBeanFactory.java:456) sur org.springframework.beans.Factory.support.abstractBeanfactory. beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) at org.springframework.beans.factory.support.AbstractBeanFactory. getbean (abstractbeanfactory.java:190) sur org.springframework.beans.factory.support.defaultListableBeanf actory.preinstantiateSingletons (defaultListableBeanfactory.java:574) sur org.springframework.context.support.abstractapplicationcontext.finishbeanfactoryInitialisation (abstractApplicationContext.java:895) sur Org.springFramework.Contex .SpringFramework.web.context.contextloader.createwebapplicationContext (contextloader.java:276) sur org.springframework.web.context.contextloader.initwebapplicationContex .java: 47) sur org.apache.catalina.core.standardContext.Listerstart (standardContext.java:4655) sur org.apache.catalina.core.standardContext.start (standardcontext.java:5364) à com.sun.enterprise. web.webmodule.start (webmodule.java:345) sur org.apache.catalina.core.contierbase.addchildinternal (contenerbase.java:986) à org.apache.catalina.core.continerbase.addchild (ContenerBase.java:9 70) sur org.apache.catalina.core.standardhost.addchild (standardhost.java:704) sur com.sun.enterprise.web.webContainer.loadwebmodule (webcontainer.java:1649) sur com.sun.enterprise.web.webcontainer .loadWebModule(WebContainer.java:1254) at com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:182) at com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:278) at com. Sun.enterprise.admin.event.admineventmulticaster.invokeModuleDelePloyEventListener (AdmineventMulticaster.java:1005) sur com.sun.enterprise.admin.event.admineventmulticaster.handleModuledeployevent (admeventMultiCaster.java:992) at com.sun.entent. AdmineventMulticaster.ProcessEvent (AdmineventMulticaster.java:470) à com.sun.enterprise.admin.event.admineventmulticaster.multicastevent (admineventmulticaster.java:182) à com.sun.enterprise.admultevent.core.Core.DeploymentNoITIFICIATIONNOTNOTNOTNOTNOTNOTNOLENT. lper.java:308) sur com.sun.enterprise.deployment.phasing.deploymentServiceutils.multicastevevent (DeploymentsViceUtils.java:231) sur com.sun.enterprise.deploy.Phasing.ServerDoymentTarget.SendStarTevent (serverdeploymentTarget.JavaG .sun.enterprise.deployment.phasing.applicationstartphase.runphase (applicationstartphase.java:132) sur com.sun.enterprise.deployment.phasing.deploymentphase.executephase (deploymentphase.java:108) at com.sun.enterprise.deployment.phasing .Peteploymentsservice.execUttephases (peteploymentsservice.java:966) sur com.sun.enterprise.deployment.phasing.pedeploymentservice.start (peteploymentService.java:609) à com.sun.enterprise.deployment.phasing.pedEploymentsservice.starts.joyments.phasing.pedPloyments. : 653) sur com.sun.enterprise.admin.mbeans.applicationsconfigmbean.start (applicationsConfigmbean.java:773) à sun.reflect.nativemethodaccessorimpl.invoke0 (méthode native) à Sun.reflect.NativeThodAcCesserImpl.invoke (NaTiveMetoDaccessoRiMPl.Je: NaTivemethodaccessoClacl ) sur sun.reflect.dele GatingMethodAccessOrimpl.invoke (délégation deMethodaccessorimp.java:25) sur java.lang.reflect.method.invoke (méthode.java:597) à com.sun.enterprise.admin.mbeanhelper.invokeOperationInbean (Mbeanhelper.java:390) at Com. .enterprise.admin.mbeanhelper.invokeOperationInbean (mbeanhelper.java:373) sur com.sun.enterprise.admin.config.baseconfigmbean.invoke (baseconfigmbean.java:47) à Com.sun.jmx. .java: 836) sur com.sun.jmx.mbeanserver.jmxmbeanserver.invoke (jmxmbeanserver.java:761) sur sun.reflect.generatedMethodaccessor15.invoke (Source inconnue) à sun.reflect.degatingMethodAccessorImMpl.invoke (DeelflectMoldmegatingMethodAccessorImMpl.invoke (DeelfletMethoDmlEgmentMeThodAccessorImMpl.invoke (DeelfletMethoDmlEgmentMoDAccessorImMpl.invoke. ) sur java.lang.reflect.method.invoke (method.java:597) sur com.sun.enterprise.admin.util.proxy.proxyclass.invoke (proxyclass.java:90) à $ proxy1.invoke (source inconnue) sur com.sun.enterprise.admin.server.core.jmx.sunoneinterceptor.invoke (sunoneInterceptor.java:304) sur com.sun.enterprise.interceptor.d ynamicinterceptor.invoke (dynamicinterceptor.java:170) sur com.sun.enterprise.admin.jmx.remote.server.callers.invokecaller.call (invokecaller.java:69) à com.sun.enterprise.admin.jmx.remote. server.mbeanServerRequestHandler.handle (MBeanServerRequestHandler.java:155) sur com.sun.enterprise.admin.jmx.remote.server.servlet.remotejmxconnectorservlet.processrequest (Remotejmxconnecterservlet.java:122). Remote.server.servlet.remotejmxconnectorservlet.dopost (RemotejmxConnectorServlet.java:193) à javax.servlet.http.httpservlet.service (httpservlet.java:754) à javax.servlet.http.httplet) à javax.servlet.http.httplet) à javax.servlet.http.httplets. sur org.apache.catalina.core.applicationfilterchain.servletService (applicationFilterChain.java:427) sur org.apache.catalina.core.standardwrappervalve.invoke (standardwrappervalve.standardcontext à Org.apache.catalina.core.Core.standardconte (StandardContextValve.java:287) sur org.apache.catalina.core.standardContextValve.invoke (StandardContextVal ve.java:218) sur org.apache.catalina.core.standardpiline.doinvoke (standardpipeline.java:648) à org.apache.catalina.core.standardpiline.doinvoke (standardpipeline.java:593) at com.sun.enterprise .web.webpipeline.invoke (webpipeline.java:94) sur com.sun.enterprise.web.pesessionlockingstandardpiline.invoke (peSessionSlocksstandardPiline.java:98) à org.apache.catalina.core.standardhostvalve.invoke (standardhostvalve.java:222222 ) sur org.apache.catalina.core.standardPipeline.doinvoke (standardpipeline.java:648) sur org.apache.catalina.core.standardpipeline.doinvoke (standardpileline.java:593) à org.apache.catalina.core.standardPileneline. invoke (standardpipeline.java:587) sur org.apache.catalina.core.contitainerbase.invoke (contenerbase.java:1093) sur org.apache.catalina.core.standardEnginevalve.invoke (standardEnginevalve.java:166) at org.apache .Catalina.core.standardPipeline.doinvoke (standardPipeline.java:648) sur org.apache.catalina.core.standardPipeline.doinvoke (standardPipeline.java:593) à org.a Pache.catalina.core.standardPipeline.invoke (standardPipeline.java:587) sur org.apache.catalina.core.containerbase.invoke (contenerbase.java:1093) sur org.apache.coyote.tomcat.coyoteadapter.Service (coyoteadapter. Java: 291) sur com.sun.enterprise.web.connector.grizzly.defaultprocessortask.invokeadapter (defaultprocessortask.java:666) à com.sun.enterprise.web.connector.Grizzly.defaultprocessTask.doprocess (DefaultProcessStork.java:597) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:872) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun .enterprise.web.connector.grizzly.defaultreadtask.dotask (defaultreadtask.java:263) sur com.sun.enterprise.web.connector.grizzly.defaultreadtask.dotask (defaultreadtask.java:214) at com.sun.enterprise .Connector.Grizzly.TaskBase.Run (taskbase.java:264) sur com.sun.enterprise.web.connector.Grizzly.workerThreadImpl.Run (wearchThreadImp.Java:117)

*Trace du client via javax.net.debug = all;*

La clé de clé est: c: / jdk / cacerts Le type de clé de clé est: le fournisseur JKS de Keystore est: init keystore init keyManager de type sunx509 truststore est: c: jdk cacerts Truststore Type est: JKS TrustStore Provider est: Init Truststore Ajouter en tant que certificat fiduciaire: Sujet: cn = swisssign platinum ca - g2, o = swisssign Ag, c = ch émetteur: cn = swisssign platinum ca - g2, o = swisssign ag, c = ch algorithme: rsa; Numéro de série: 0x4EB200670C035D4F VALID DU MER 25 octobre 10:36:00 CEST 2006 Jusqu'au samedi 25 oct

déclenchez l'ensemencement de la sécurité et de l'ensemencement SecureRurandom %% pas de session client en cache* ClientHello, TLSV1 Randomcookie: GMT: 1288255192 octets = {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 } Session ID: {} Cipher Suites: [SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, 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, ssl_dhe_dss_export_with_des40_cbc_sha] Méthodes de compression: {0}


Écrire] Hashs MD5 et 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 ....... .. Main, écriture: TLSV1 Handshake, Longueur = 73 [Write] MD5 et Sha1 Hashs: 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 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 .. Main, écriture: SSLV2 Client Hello Message, Longueur = 98 Main, Lire: Alerte TLSV1, Longueur = 2 Main, Recv TLSV1 Alert: Fatal, Handshake_Failure Main, appelé CloseSocket () Main, exception de gestion: Javax. net.ssl.sslhandshakeException: Alerte fatale reçue: Handshake_failure Erreur: ldapException: n'a pas pu négocier une connexion sécurisée (91) Connecter l'erreur Javax.net.ssl.sslhandshakeException: Alerte fatale reçue: handshake_failure

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top