Spring Boot 2 embed tomcat 9.0.26がjksファイルストリームをロードできない


11

tomcat 9.0.26が埋め込まれたSpring Boot 2.2.0でSSLを使用しようとしましたが、tomcatはJKSファイルストリームを閉じてロードできません。

アプリケーションのプロパティは次のとおりです。

server.port=443
server.ssl.key-store-type=JKS
server.ssl.key-store=C:\\Keystore\\mykey.jks
server.ssl.key-store-password=cccc 
server.ssl.key-alias=*.mydomain.com

例外:

org.springframework.boot.web.server.WebServerException:org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:215)〜[spring-boot-2.2.0で組み込みTomcatサーバーを起動できない.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer(ServletWebServerApplicationContext.java:297)〜[spring-boot-2.2.0。 BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:163)〜[spring-boot-2.2.0.BUILD -SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553)〜[spring-context-5.2.0.RELEASE。jar!/:5.2.0.RELEASE] org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/ :2.2.0.BUILD-SNAPSHOT] org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD- SNAPSHOT] org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] org.springframework。 boot.SpringApplication.run(SpringApplication.java:315)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] org.springframework.boot.SpringApplication.run(SpringApplication .java:1226)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0。BUILD-SNAPSHOT] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] at eu。 soluma.app.SolumaTdvApplication.main(SolumaTdvApplication.java:34)〜[classes!/:0.0.1-SNAPSHOT] at java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)〜[na:na] java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[na:na]にjava.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)に〜[ na:na] at java.base / java.lang.reflect.Method.invoke(Method.java:567)〜[na:na] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) 〜[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0。1-SNAPSHOT] org.springframework.boot.loader.Launcher.launch(Launcher.java:87)〜[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] org.springframework.boot.loader。 Launcher.launch(Launcher.java:51)〜[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52)〜[SolumaTDV -0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]原因:java.lang.IllegalArgumentException:standardService.connector.startFailed at org.apache.catalina.core.StandardService.addConnector(StandardService.java:231)〜[ tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:278)〜[spring-boot-2.2.0 .BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] org.springframework.boot。web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:197)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] ... 18の一般的なフレームが省略された原因by:org.apache.catalina.LifecycleException:プロトコルハンドラーの開始がorg.apache.catalina.connector.Connector.startInternal(Connector.java:1008)で失敗しました〜[tomcat-embed-core-9.0.26.jar!/:9.0 .26] org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] org.apache.catalina.core .StandardService.addConnector(StandardService.java:227)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] ... 20の共通フレームが省略された原因:java.lang.IllegalArgumentException:ストリームが終了したorg.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:99)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:71)〜[tomcat-embed-core -9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:218)〜[tomcat-embed-core-9.0.26.jar!/: 9.0.26](org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1124)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26](org.apache) tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1210)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java :585)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.catalina.connector.Connector.startInternal(Connector.java:1005)〜[tomcat-embed-core- 9.0.26.jar!/:9.0。26] ... 22の共通フレームが省略された原因:java.io.IOException:java.base / java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:176)〜[na:na]で閉じられたストリームjava.base / java.io.BufferedInputStream.read(BufferedInputStream.java:342)〜[na:na](java.base / java.io.BufferedInputStream.fill(BufferedInputStream.java:252)〜[na:na](java.base /) java.io.BufferedInputStream.read(BufferedInputStream.java:271)〜[na:na] at java.base / java.security.DigestInputStream.read(DigestInputStream.java:125)〜[na:na] java.base / java.io.DataInputStream.readInt(DataInputStream.java:392)〜[na:na] at java.base / sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:659)〜[na:na] at java。 base / sun.security.util.KeyStoreDelegator。engineLoad(KeyStoreDelegator.java:222)〜[na:na] at java.base / java.security.KeyStore.load(KeyStore.java:1472)〜[na:na] at org.apache.tomcat.util.security。 KeyStoreUtil.load(KeyStoreUtil.java:69)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:217 )〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore(SSLHostConfigCertificate.java:206)〜[tomcat-embed-core- 9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:283)〜[tomcat-embed-core-9.0.26.jar!/:9.0 .26] org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:247)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] org.apache.tomcat .util.net。AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:97)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] ... 28の一般的なフレームが省略されました


キーストアへのパスを「二重引用符」で囲み、単一のスラッシュを付けてみましたか?例server.ssl.key-store="C:\Keystore\mykey.jks"
Tommy Brettschneider、

場所にプレフィックスを付けてみましたfile:か?
M. Deinum

はい、両方のヒントを試しましたが、うまくいきませんでした
user2803095

ここの質問は正確には何ですか?
TylerH

回答:


23

これは、9.0.27で修正されるTomcat 9.0.25で導入されたリグレッションです。


9
Spring Boot 2.1.8にダウングレードして問題を解決しました。
ペドロカサグランデ

2
誰かこれについてもっと情報がありますか?私は同じ問題を抱えていて、スローされた例外が本当にあいまいであることがわかりました。
Thibstars、

これは、この回帰が追跡される問題のようです。この問題は現在解決されています。github.com/spring-projects/spring-boot/issues/18505
rdguam

7

ペドロありがとう。Spring Boot 2.1.9.RELEASEに問題があり、2.1.8にダウングレードすることで問題が解決したことを確認できます。


Java 12およびSpring 2.1.9.RELEASEから2.1.8.RELEASEまでが私にとっても機能しました。
Markus G.

...ペドロは誰ですか?
TylerH

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.