2011-10-04 36 views
9

estoy tratando de instalar algunos certificados SSL comprados en godaddy.com. He encontrado algunos tutoriales como este:
http://www.denizoguz.com/2011/01/02/installing-godaddy-ssl-certificates-on-glassfish-v3-step-by-step/
Mis certificados se generaron hace más de un año para el servidor Apache HTTP, por lo que he seguido el tutorial desde el paso 3.
He importado estos archivos en keystore.jks, he sustituido todas las apariciones de s1as con mi seudónimo certificado domain.xml, he reiniciado el dominio, pero cuando intento acceder a algo a través de SSL i conseguir esto en los registros de GlassFish:glassfish 3.1.1 import ssl certificates

[#|2011-10-04T16:02:52.972+0300|WARNING|glassfish3.1.1|com.sun.grizzly.config.GrizzlyServiceListener|_ThreadID=17;_ThreadName=http-thread-pool-8181(1);|GRIZZLY0007: SSL support could not be configured! 
java.io.IOException: SSL configuration is invalid due to No available certificate or key corresponds to the SSL cipher suites which are enabled. 
     at com.sun.grizzly.util.net.jsse.JSSE14SocketFactory.checkConfig(JSSE14SocketFactory.java:455) 
     at com.sun.grizzly.util.net.jsse.JSSE14SocketFactory.init(JSSE14SocketFactory.java:183) 
     at com.sun.grizzly.config.SSLConfigHolder.initializeSSL(SSLConfigHolder.java:361) 
     at com.sun.grizzly.config.SSLConfigHolder.configureSSL(SSLConfigHolder.java:239) 
     at com.sun.grizzly.config.GrizzlyEmbeddedHttps$LazySSLInitializationFilter.execute(GrizzlyEmbeddedHttps.java:202) 
     at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 
     at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 
     at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 
     at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 
     at com.sun.grizzly.ContextTask.run(ContextTask.java:71) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 
     at java.lang.Thread.run(Thread.java:679) 
Caused by: javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled. 
     at sun.security.ssl.SSLServerSocketImpl.checkEnabledSuites(SSLServerSocketImpl.java:327) 
     at sun.security.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:272) 
     at com.sun.grizzly.util.net.jsse.JSSE14SocketFactory.checkConfig(JSSE14SocketFactory.java:451) 
     ... 14 more 
|#] 

[#|2011-10-04T16:02:52.976+0300|SEVERE|glassfish3.1.1|com.sun.grizzly.config.GrizzlyServiceListener|_ThreadID=17;_ThreadName=http-thread-pool-8181(1);|ProtocolChain exception 
java.lang.NullPointerException 
     at com.sun.grizzly.filter.SSLReadFilter.newSSLEngine(SSLReadFilter.java:352) 
     at com.sun.grizzly.filter.SSLReadFilter.obtainSSLEngine(SSLReadFilter.java:399) 
     at com.sun.grizzly.filter.SSLReadFilter.execute(SSLReadFilter.java:159) 
     at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 
     at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 
     at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 
     at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 
     at com.sun.grizzly.ContextTask.run(ContextTask.java:71) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 
     at java.lang.Thread.run(Thread.java:679) 
|#] 

alguna idea de lo que estoy haciendo escurrir? ??


Sí, creo que el problema se debe a que mis certificados son para apache http. He encontrado este tutorial
http://wiki.eclipse.org/Generating_a_Private_Key_and_a_Keystore
que explica cómo convertir estos certificados, pero esto no parece resolver mi problema eighter


actualizaciones, después he seguido este tutorial agentbob.info/agentbob/79-AB. html, ahora me sale

[#|2011-10-05T13:18:47.853+0300|WARNING|glassfish3.1.1|com.sun.grizzly.config.GrizzlyServiceListener|_ThreadID=17;_ThreadName=http-thread-pool-8181(1);|GRIZZLY0007: SSL support could not be configured! 
java.io.IOException: injection failed on com.sun.enterprise.security.ssl.SSLUtils.secSupp with class com.sun.enterprise.server.pluggable.SecuritySupport 
     at com.sun.grizzly.util.net.jsse.JSSE14SocketFactory.init(JSSE14SocketFactory.java:188) 
     at com.sun.grizzly.config.SSLConfigHolder.initializeSSL(SSLConfigHolder.java:361) 
     at com.sun.grizzly.config.SSLConfigHolder.configureSSL(SSLConfigHolder.java:239) 
     at com.sun.grizzly.config.GrizzlyEmbeddedHttps$LazySSLInitializationFilter.execute(GrizzlyEmbeddedHttps.java:202) 
     at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 
     at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 
     at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 
     at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 
     at com.sun.grizzly.ContextTask.run(ContextTask.java:71) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 
     at java.lang.Thread.run(Thread.java:679) 
|#] 

[#|2011-10-05T13:18:47.859+0300|SEVERE|glassfish3.1.1|com.sun.grizzly.config.GrizzlyServiceListener|_ThreadID=17;_ThreadName=http-thread-pool-8181(1);|ProtocolChain exception 
java.lang.NullPointerException 
     at com.sun.grizzly.filter.SSLReadFilter.newSSLEngine(SSLReadFilter.java:352) 
     at com.sun.grizzly.filter.SSLReadFilter.obtainSSLEngine(SSLReadFilter.java:399) 
     at com.sun.grizzly.filter.SSLReadFilter.execute(SSLReadFilter.java:159) 
     at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 
     at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 
     at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 
     at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 
     at com.sun.grizzly.ContextTask.run(ContextTask.java:71) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 
     at java.lang.Thread.run(Thread.java:679) 
|#] 

otra actualización
parece que si un cambio de la contraseña de importkey a changeit me sale este error:

[#|2011-10-05T13:29:17.210+0300|SEVERE|glassfish3.1.1|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=20;_ThreadName=Thread-50;|java.security.UnrecoverableKeyException: Cannot recover key 
java.lang.Error: java.security.UnrecoverableKeyException: Cannot recover key 
     at com.sun.enterprise.security.ssl.SSLUtils.getSSLContext(SSLUtils.java:159) 
     at com.sun.enterprise.security.ssl.SSLUtils.postConstruct(SSLUtils.java:125) 
     at com.sun.hk2.component.AbstractCreatorImpl.inject(AbstractCreatorImpl.java:131) 
     at com.sun.hk2.component.ConstructorCreator.initialize(ConstructorCreator.java:91) 
     at com.sun.hk2.component.AbstractCreatorImpl.get(AbstractCreatorImpl.java:82) 
     at com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:67) 
     at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:139) 
     at com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:76) 
     at org.jvnet.hk2.component.Habitat.getBy(Habitat.java:1048) 
     at org.jvnet.hk2.component.Habitat.getByType(Habitat.java:1029) 
     at com.sun.hk2.component.InjectInjectionResolver.getComponentInjectValue(InjectInjectionResolver.java:159) 
     at com.sun.hk2.component.InjectInjectionResolver.getValue(InjectInjectionResolver.java:90) 
     at org.jvnet.hk2.component.InjectionManager.inject(InjectionManager.java:141) 
     at org.jvnet.hk2.component.InjectionManager.inject(InjectionManager.java:91) 
     at com.sun.hk2.component.AbstractCreatorImpl.inject(AbstractCreatorImpl.java:126) 
     at com.sun.hk2.component.ConstructorCreator.initialize(ConstructorCreator.java:91) 
     at com.sun.hk2.component.AbstractCreatorImpl.get(AbstractCreatorImpl.java:82) 
     at com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:67) 
     at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:139) 
     at com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:76) 
     at com.sun.enterprise.security.SecuritySniffer.setup(SecuritySniffer.java:109) 
     at com.sun.enterprise.v3.server.ContainerStarter.startContainer(ContainerStarter.java:116) 
     at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainer(ApplicationLifecycle.java:944) 
     at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:652) 
     at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:368) 
     at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:375) 
     at com.sun.enterprise.v3.admin.adapter.InstallerThread.load(InstallerThread.java:210) 
     at com.sun.enterprise.v3.admin.adapter.InstallerThread.run(InstallerThread.java:108) 
Caused by: java.security.UnrecoverableKeyException: Cannot recover key 
     at sun.security.provider.KeyProtector.recover(KeyProtector.java:328) 
     at sun.security.provider.JavaKeyStore.engineGetKey(JavaKeyStore.java:138) 
     at sun.security.provider.JavaKeyStore$JKS.engineGetKey(JavaKeyStore.java:55) 
     at java.security.KeyStore.getKey(KeyStore.java:779) 
     at sun.security.ssl.SunX509KeyManagerImpl.<init>(SunX509KeyManagerImpl.java:131) 
     at sun.security.ssl.KeyManagerFactoryImpl$SunX509.engineInit(KeyManagerFactoryImpl.java:68) 
     at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:256) 
     at com.sun.enterprise.security.ssl.impl.SecuritySupportImpl.getKeyManagers(SecuritySupportImpl.java:290) 
     at com.sun.enterprise.security.ssl.SSLUtils.getKeyManagers(SSLUtils.java:197) 
     at com.sun.enterprise.security.ssl.SSLUtils.getSSLContext(SSLUtils.java:147) 
     ... 27 more 
|#] 
+0

¿Se asegurarse de que la contraseña del almacén de claves tiene que ser la misma que la contraseña maestra Glassfish (contraseña no administrador)? –

+0

Hola Matt, este era el problema exacto, tan pronto como cambié la contraseña maestra para importar todo funciona como se esperaba. Esto resolvió el problema. Muchas gracias. –

+0

Bueno para escuchar. Entonces agregaré una respuesta que puedes aceptar. –

Respuesta

6

Debe asegurarse de que la contraseña del almacén de claves coincida con la contraseña maestra de Glassfish (que es y no la contraseña de administrador).

Aquí es a tutorial how to change the master password para GF 3.1

+0

enlace roto para el tutorial – ggkmath

+0

@ggkmath Gracias por la pista. Actualizado el enlace –

+0

Este es un puntero crítico; más importante; el keypass del alias de clave de destino debe ser el mismo que la contraseña maestra. – kosgeinsky

0

Parece que puede haber algunos problemas de configuración o un error conocido. Compruebe esto post hacia fuera.

Desde el hilo:..

"2. Este es un tema establecido No pueden encontrar los certificados correspondientes ¿Puede usted doble Vea el archivo * .jks Tenga en cuenta que el almacén de claves por defecto contraseña es changeit?. "

+0

alguna idea de este nuevo mensaje de error? –