2011-12-01 30 views
2

我想添加到我的GlassFish服務器的HTTP支持,所以我看了互聯網上,我發現這個教程: http://javadude.wordpress.com/2010/04/06/getting-started-with-glassfish-v3-and-ssl/Glassfish的ProtocolChain例外

我試圖在這兩個cacerts.jks添加受信任的證書和server.keystore,我改變了我的主密碼,以匹配密鑰庫中的密碼,我幾乎嘗試了glassfish管理界面上的每個選項,但都沒有成功。也許你將能夠幫助

這裏是我的日誌:

[#|2011-12-01T17:32:08.281+0100|WARNING|glassfish3.1.1|com.sun.grizzly.config.GrizzlyServiceListener|_ThreadID=20;_ThreadName=Thread-2;|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:662) 
Caused by: javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled. 
     at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.checkEnabledSuites(SSLServerSocketImpl.java:310) 
     at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:255) 
     at com.sun.grizzly.util.net.jsse.JSSE14SocketFactory.checkConfig(JSSE14SocketFactory.java:451) 
     ... 14 more 
|#] 

[#|2011-12-01T17:32:08.322+0100|SEVERE|glassfish3.1.1|com.sun.grizzly.config.GrizzlyServiceListener|_ThreadID=20;_ThreadName=Thread-2;|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:662) 
|#] 

[#|2011-12-01T17:32:08.322+0100|SEVERE|glassfish3.1.1|com.sun.grizzly.config.GrizzlyServiceListener|_ThreadID=21;_ThreadName=Thread-2;|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:662) 
|#] 

回答

0

再次嘗試編輯的網絡監聽器,在[配置]> [服務器配置]> [網絡配置]> [網絡監聽器]選擇相應的偵聽器,例如管理監聽器或http-listener-2。打開選項卡[SSL],向下滾動,並檢查哪些密碼套件被選擇用於右側列表中。出於測試目的嘗試添加所有可用的密碼。

之後,在[常規]選項卡中重新檢查您選擇了在使用keytool導入證書時用作別名的證書暱稱。

保存更改並明確重新啓動域(重新啓動Glassfish服務器)。

+0

我已經嘗試激活所有密碼。暱稱是一樣的我給證書的別名,別名我使用: 的keytool -list -v -alias MYALIAS -keystore server.keystore 和信任: cacerts.jks 中,我還添加了我的證書鏈的證書。 我把它放在keystore中:server.keystore – user1029309

0

剛剛發生同樣的問題,glassfish沒有將域目錄中的keystore.jks和cacerts.jks同步到實例目錄。

我從拷貝這兩個文件的GlassFish /域/ DOMAIN_NAME/config中節點/節點名/實例名/配置

重新啓動後,一切都工作得很好!