2016-07-04 7 views
3
私はプロジェクトに取り組んでいます

- Tomcatの9、JSF 2.2、春のセキュリティ4.1TomcatのSSL - IllegalStateExceptionが:利用できませんSSLセッションID

私はHTTPS SSLとの接続を確保しようと、私はページにアクセスしたとき、私はエラーを得ましたHTTPSはうまくいきます。このエラーだけで私は狂ってしまいます。

02-Jul-2016 16:02:04.664 WARNING [https-openssl-nio-443-exec-1] org.apache.coyote.http11.Http11Processor.action Exception getting SSL attributes 
java.lang.IllegalStateException: SSL session ID not available 
at org.apache.tomcat.util.net.openssl.OpenSSLEngine$OpenSSLSession.getId(OpenSSLEngine.java:1048) 
at org.apache.tomcat.util.net.jsse.JSSESupport.getSessionId(JSSESupport.java:156) 
at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:806) 
at org.apache.coyote.Request.action(Request.java:392) 
at org.apache.catalina.connector.Request.getAttribute(Request.java:903) 
at org.apache.catalina.connector.Request.getAttributeNames(Request.java:985) 
at com.sun.faces.application.WebappLifecycleListener.requestDestroyed(WebappLifecycleListener.java:114) 
at com.sun.faces.config.ConfigureListener.requestDestroyed(ConfigureListener.java:383) 
at org.apache.catalina.core.StandardContext.fireRequestDestroyEvent(StandardContext.java:5953) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) 
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110) 
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1419) 
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:44) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Thread.java:745) 

奇妙なことが、このエラーを取得isn't私のチームメイトということであり、彼は同じコードは、サーバーとサーバーの設定があります。

TomcatのHTTPSの設定:私の英語のため申し訳ありません

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" 
     SSLEnabled="true" 
     maxThreads="150" 
     scheme="https" secure="true"   
     clientAuth="false" sslProtocol="TLSv1.2" 
     keystoreFile="C:\apache-tomcat-9.0.0.M8\conf\keystore" 
     keystorePass="changeit" 
     keyAlias="tomcat" 
     keyPass="????" /> 

答えて

4

あなたのチームメイトがTomcatネイティブライブラリをインストールしていないと思われます。

これは、TLSセッションチケットを有効にすることの副作用です。 SSLHostConfigdisableSessionTickets="true"と設定すると、TLSセッションIDが表示され、エラーは消えてしまいます。

セッションチケットが有効になっているときに例外が表示されるのは、TomcatのJSSE OpenSSLコードのバグです。私は、Tomcatネイティブのためにバグを開いた:

https://bz.apache.org/bugzilla/show_bug.cgi?id=59811

あなたがバグを経由して進行を追跡することができます。

+0

'disableSessionTickets =" true "'と書いてください。私は 'Connector'ブロックに書き込もうとしましたが、それは私を助けませんでした。 – ermak0ff

関連する問題