2011-10-04 72 views
9

我試圖安裝一些從godaddy.com購買的SSL證書。我發現一些教程,像這樣的:
http://www.denizoguz.com/2011/01/02/installing-godaddy-ssl-certificates-on-glassfish-v3-step-by-step/
我的證書生成一年前爲Apache HTTP服務器,所以我也跟着從第3步
我在keystore.jks進口這些文件的教程,我已經取代通過domain.xml我的證書暱稱爲s1as的所有事件,我已經重新啓動域,但是當我嘗試通過SSL訪問的東西我得到這個在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) 
|#] 

任何想法,我在做什麼擰? ??


是的,我認爲這個問題在我的證書是爲Apache的事實。我發現這個教程
http://wiki.eclipse.org/Generating_a_Private_Key_and_a_Keystore
解釋如何將這些證書的轉換,但是這似乎並不解決我的問題eighter


更新, 我跟着這個教程agentbob.info/agentbob/79-AB後。 HTML,現在我得到

[#|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) 
|#] 

另一個更新
看來,如果改變從importkey密碼的changeit我得到這個錯誤:

[#|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

你保證密鑰庫密碼必須是一樣的Glassfish的主密碼(不是管理員密碼)? –

+0

嗨馬特,這是確切的問題,只要我將主密碼更改爲importkey,一切都按預期工作。這解決了這個問題。非常感謝。 –

+0

很高興聽到。所以我會添加一個你可以接受的答案。 –

回答

6

您應確保密鑰庫密碼與Glassfish主密碼(它是而不是管理員密碼)相匹配。

這裏是a tutorial how to change the master password爲GF 3.1

+0

教程中斷的鏈接 – ggkmath

+0

@ggkmath感謝您的提示。更新了鏈接。 –

+0

這是一個關鍵指針;更重要的是;目標密鑰別名的keypass應與主密碼相同。 – kosgeinsky

0

它看起來像你可能有一些安裝問題或已知的錯誤。檢查這post了。

從螺紋:。

「2.這是一個設置問題,他們無法找到相應的證書 你能仔細檢查* .jks文件請注意,默認密鑰庫 密碼爲changeit? 「

+0

這個新的錯誤消息的任何想法? –

相關問題