Spring Boot 2 Embed Tomcat 9.0.26 kann jks Dateistream nicht geschlossen laden

11

Ich versuche, SSL auf Spring Boot 2.2.0 mit eingebettetem Tomcat 9.0.26 zu verwenden, aber Tomcat kann den geschlossenen JKS-Dateistream nicht laden.

Hier sind die Anwendungseigenschaften:

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

Ausnahme:

org.springframework.boot.web.server.WebServerException: Eingebetteter Tomcat-Server kann nicht unter org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start (TomcatWebServer.java:215) ~ [spring-boot-2.2.0 gestartet werden .BUILD-SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] unter org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer (ServletWebServerApplicationContext.java:297) ~ [spring-boot-2.0. BUILD-SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] unter org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh (ServletWebServerApplicationContext.java:163) ~ [spring-boot-2.2.U -SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] unter org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:553) ~ [spring-context-5.2.0.RELEASE.jar! /: 5.2.0.RELEASE] unter org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh (ServletWebServerApplicationContext.java:141) ~ [spring-boot-2.2.0.BUILD-SNAPSHOT.jar! / : 2.2.0.BUILD-SNAPSHOT] unter org.springframework.boot.SpringApplication.refresh (SpringApplication.java:747) ~ [spring-boot-2.2.0.BUILD-SNAPSHOT.jar! /: 2.2.0.BUILD- SNAPSHOT] unter org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:397) ~ [spring-boot-2.2.0.BUILD-SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] unter org.springframework. boot.SpringApplication.run (SpringApplication.java:315) ~ [spring-boot-2.2.0.BUILD-SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] unter org.springframework.boot.SpringApplication.run (SpringApplication .java: 1226) ~ [spring-boot-2.2.0.BUILD-SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] bei org.springframework.boot.SpringApplication.run (SpringApplication.java:1215) ~ [spring-boot-2.2.0.BUILD-SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] bei eu. soluma.app.SolumaTdvApplication.main (SolumaTdvApplication.java:34) ~ [Klassen! /: 0.0.1-SNAPSHOT] unter java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (native Methode) ~ [na: na] at java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) ~ [na: na] at java.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccess. na: na] bei java.base / java.lang.reflect.Method.invoke (Method.java:567) ~ [na: na] bei org.springframework.boot.loader.MainMethodRunner.run (MainMethodRunner.java:48) ~ [SolumaTDV-0.0.1-SNAPSHOT.jar: 0.0.1-SNAPSHOT] unter org.springframework.boot.loader.Launcher.launch (Launcher.java:87) ~ [SolumaTDV-0.0.1-SNAPSHOT.jar: 0.0.1-SNAPSHOT] unter org.springframework.boot.loader. Launcher.launch (Launcher.java:51) ~ [SolumaTDV-0.0.1-SNAPSHOT.jar: 0.0.1-SNAPSHOT] unter org.springframework.boot.loader.JarLauncher.main (JarLauncher.java:52) ~ [SolumaTDV -0.0.1-SNAPSHOT.jar: 0.0.1-SNAPSHOT] Auslöser: java.lang.IllegalArgumentException: standardService.connector.startFailed at org.apache.catalina.core.StandardService.addConnector (StandardService.java:231) ~ [ tomcat-embedded-core-9.0.26.jar! /: 9.0.26] unter org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviousRemovedConnectors (TomcatWebServer.java:278) ~ [spring-boot-2.2.0 .BUILD-SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] unter 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 allgemeine Frames weggelassen Caused von: org.apache.catalina.LifecycleException: Start des Protokollhandlers bei org.apache.catalina.connector.Connector.startInternal (Connector.java:1008) fehlgeschlagen ~ [tomcat-embedded-core-9.0.26.jar! /: 9.0 .26] unter org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:183) ~ [tomcat-embedded-core-9.0.26.jar! /: 9.0.26] unter org.apache.catalina.core .StandardService.addConnector (StandardService.java:227) ~ [tomcat-embedded-core-9.0.26.jar! /: 9.0.26] ... 20 allgemeine Frames weggelassen Auslöser: java.lang.IllegalArgumentException: Stream geschlossen um org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext (AbstractJsseEndpoint.java:99) ~ [tomcat-embedded-core-9.0.26.jar! /: 9.0.26] unter org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl (AbstractJsseEndpoint.java:71) ~ [tomcat-embedded-core -9.0.26.jar! /: 9.0.26] unter org.apache.tomcat.util.net.NioEndpoint.bind (NioEndpoint.java:218) ~ [tomcat-embedded-core-9.0.26.jar! /: 9.0.26] unter org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup (AbstractEndpoint.java:1124) ~ [tomcat-embedded-core-9.0.26.jar! /: 9.0.26] unter org.apache. tomcat.util.net.AbstractEndpoint.start (AbstractEndpoint.java:1210) ~ [tomcat-embedded-core-9.0.26.jar! /: 9.0.26] unter org.apache.coyote.AbstractProtocol.start (AbstractProtocol.java) : 585) ~ [tomcat-embedded-core-9.0.26.jar! /: 9.0.26] unter org.apache.catalina.connector.Connector.startInternal (Connector.java:1005) ~ [tomcat-embedded-core- 9.0.26.jar! /: 9.0.26] ... 22 allgemeine Frames weggelassen Auslöser: java.io.IOException: Stream geschlossen unter java.base / java.io.BufferedInputStream.getBufIfOpen (BufferedInputStream.java:176) ~ [na: na] at java.base / java.io.BufferedInputStream.read (BufferedInputStream.java:342) ~ [na: na] bei java.base / java.io.BufferedInputStream.fill (BufferedInputStream.java:252) ~ [na: na] bei java.base / java.io.BufferedInputStream.read (BufferedInputStream.java:271) ~ [na: na] bei java.base / java.security.DigestInputStream.read (DigestInputStream.java:125) ~ [na: na] bei java.base / java.io.DataInputStream.readInt (DataInputStream.java:392) ~ [na: na] bei java.base / sun.security.provider.JavaKeyStore.engineLoad (JavaKeyStore.java:659) ~ [na: na] bei Java. base / sun.security.util.KeyStoreDelegator.engineLoad (KeyStoreDelegator.java:222) ~ [na: na] unter java.base / java.security.KeyStore.load (KeyStore.java:1472) ~ [na: na] unter org.apache.tomcat.util.security. KeyStoreUtil.load (KeyStoreUtil.java:69) ~ [tomcat-embedded-core-9.0.26.jar! /: 9.0.26] unter org.apache.tomcat.util.net.SSLUtilBase.getStore (SSLUtilBase.java:217) ) ~ [tomcat-embedded-core-9.0.26.jar! /: 9.0.26] unter org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore (SSLHostConfigCertificate.java:206) ~ [tomcat-embedded-core- 9.0.26.jar! /: 9.0.26] unter org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers (SSLUtilBase.java:283) ~ [tomcat-embedded-core-9.0.26.jar! /: 9.0 .26] unter org.apache.tomcat.util.net.SSLUtilBase.createSSLContext (SSLUtilBase.java:247) ~ [tomcat-embedded-core-9.0.26.jar! /: 9.0.26] unter org.apache.tomcat .util.net.AbstractJsseEndpoint.createSSLContext (AbstractJsseEndpoint.java:97) ~ [tomcat-embedded-core-9.0.26.jar! /: 9.0.26] ... 28 allgemeine Frames wurden weggelassen

user2803095
quelle
Haben Sie versucht, den Pfad zu Ihrem Keystore in "doppelten Anführungszeichen" und mit einfachen Schrägstrichen zu setzen? zBserver.ssl.key-store="C:\Keystore\mykey.jks"
Tommy Brettschneider
Haben Sie versucht, dem Standort ein Präfix voranzustellen file:?
M. Deinum
Ja, ich habe beide Tipps ausprobiert, aber kein Glück
user2803095
Was genau ist hier die Frage?
TylerH

Antworten:

23

Es handelt sich um eine in Tomcat 9.0.25 eingeführte Regression, die in 9.0.27 behoben wird.

Mark Thomas
quelle
9
Auf Spring Boot 2.1.8 heruntergestuft und das Problem behoben.
Pedro Casagrande
2
Hat jemand mehr Infos dazu? Ich hatte das gleiche Problem und fand die Ausnahme wirklich vage.
Thibstars
Dies scheint das Problem zu sein, bei dem diese Regression verfolgt wird. Das Problem ist jetzt geschlossen. github.com/spring-projects/spring-boot/issues/18505
rdguam
7

Danke Pedro. Ich habe das Problem mit Spring Boot 2.1.9.RELEASE und kann bestätigen, dass es durch ein Downgrade auf 2.1.8 behoben wurde.

DarrenK
quelle
Java 12 und von Spring 2.1.9.RELEASE bis 2.1.8.RELEASE funktionierten auch für mich.
Markus G.
... wer ist Pedro?
TylerH
0

2.1.10.RELEASE behebt auch das in 2.1.9 gezeigte Problem.

James
quelle