"SSLException:利用可能なPSKがありません。 Kibana 7.11で "Unable to resume "エラーが発生し、Elasticsearch Monitoring/X-Pack Monitoringウィジェットが破損しました。

環境

  • Liferay DXP 7.1-7.3(Liferay Enterprise Searchサブスクリプション付き
  • Elasticsearch Monitoring/X-Pack Monitoring ウィジェット
  • Elasticsearch & Kibana 7.11
  • JDK 11

症状

Liferay DXPがJDK 11で構成されており、ElasticsearchとKibana 7.11に接続している場合、特定のJDK 11ディストリビューションで以下のエラーが発生し、 Elasticsearch Monitoring/X-Pack Monitoringウィジェット がレンダリングされないことがあります。

12:24:42,480 ERROR [http-nio-8080-exec-10][XPackMonitoringProxyServlet:108] javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
	at java.base/sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:526)
	at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:112)
	<truncated for clarity>
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1601) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:834) 12:24:42,483 ERROR [http-nio-8080-exec-4][XPackMonitoringProxyServlet:108] javax.net.ssl.SSLException: No PSK available. Unable to resume. javax.net.ssl.SSLException: No PSK available. Unable to resume. at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:129) at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:308) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:264) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:255) at java.base/sun.security.ssl.ServerHello$T13ServerHelloConsumer.consume(ServerHello.java:1224) at java.base/sun.security.ssl.ServerHello$ServerHelloConsumer.onServerHello(ServerHello.java:984) at java.base/sun.security.ssl.ServerHello$ServerHelloConsumer.consume(ServerHello.java:872) at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:421) at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:178) at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164) at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1152) at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1063) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:543) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:409) at

解像度

このエラーは、TLSv1.3が使用されているときのJDK 11のレースコンディションが原因であると考えられます( JDK-8213202を参照)。 (Kibana 7.11.0 は、TLSv1.3をデフォルトとするNodeJS 12 に移行しました)。

推奨される解決策は、以下のいずれかの方法でLiferay DXP-KibanaスタックのTLSv1.3を無効にすることです。

  • オプションA: X-Packテストの実行時にTomcatのsetenv.bat/shで -Dhttps.protocols=TLSv1.1,TLSv1.2 を設定(CATALINA_OPTSに追加)することで、Tomcatのアウトバウンド接続でTLSv1.3を無効にします。
  • オプション B: Kibana で TLSv1.3 を無効にするには、 --tls-max-v1.2KIBANA_HOME/config/node.optionsに追加します。

この問題がすでに修正されているJDK 11バージョンに切り替えることも可能です。 Liferayのテストによると、このエラーはOracle JDK 11.0.9でも再現されますが、OpenJDK 11.0.9では修正されているようです。 (調査は LPS-128591で行われました。)


Elastic、Elasticsearch、およびX-Packは、米国で登録されたElasticsearch BVの商標です。 と他の国では

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています