Spring boot 2 встраивает tomcat 9.0.26 не может загрузить файловый поток jks закрыт

avatar
user2803095
1 октября 2019 в 17:43
6644
3
13

Я пытаюсь использовать SSL при весенней загрузке 2.2.0 со встроенным tomcat 9.0.26, но 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: невозможно запустить встроенный сервер Tomcat в org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:215) ~[весна-загрузка-2.2.0.СТРОЙКА-СНИМОК.jar!/:2.2.0.СТРОЙКА-СНИМОК] в org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer(ServletWebServerApplicationContext.java:297) ~[весна-загрузка-2.2.0.СТРОЙКА-СНИМОК.jar!/:2.2.0.СТРОЙКА-СНИМОК] в org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh (ServletWebServerApplicationContext.java:163) ~[весна-загрузка-2.2.0.СТРОЙКА-СНИМОК.jar!/:2.2.0.СТРОЙКА-СНИМОК] в org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553) ~[весна-контекст-5.2.0.РЕЛИЗ.jar!/:5.2.0.РЕЛИЗ] в org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[весна-загрузка-2.2.0.СТРОЙКА-СНИМОК.jar!/:2.2.0.СТРОЙКА-СНИМОК] в org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[весна-загрузка-2.2.0.СТРОЙКА-СНИМОК.jar!/:2.2.0.СТРОЙКА-СНИМОК] в org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[весна-загрузка-2.2.0.СТРОЙКА-СНИМОК.jar!/:2.2.0.СТРОЙКА-СНИМОК] в org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[весна-загрузка-2.2.0.СТРОЙКА-СНИМОК.jar!/:2.2.0.СТРОЙКА-СНИМОК] в org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[весна-загрузка-2.2.0.СТРОЙКА-СНИМОК.jar!/:2.2.0.СТРОЙКА-СНИМОК] в org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[весна-загрузка-2.2.0.СТРОЙКА-СНИМОК.jar!/:2.2.0.СТРОЙКА-СНИМОК] в eu.soluma.app.SolumaTdvApplication.main(SolumaTdvApplication.java:34) ~[классы!/:0.0.1-СНИМОК] в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (собственный Метод) ~[на:на] в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[на:на] в java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[на:на] в java.base/java.lang.reflect.Method.invoke(Method.java:567) ~[na:na] в 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] в org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) ~[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] Причина: java.lang.IllegalArgumentException: стандартныйService.connector.startFailed в org.apache.catalina.core.StandardService.addConnector(StandardService.java:231) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] в org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:278) ~[весна-загрузка-2.2.0.СТРОЙКА-СНИМОК.jar!/:2.2.0.СТРОЙКА-СНИМОК] в org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:197) ~[весна-загрузка-2.2.0.СТРОЙКА-СНИМОК.jar!/:2.2.0.СТРОЙКА-СНИМОК] ... Пропущено 18 общих кадров Причина: 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] на org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:71) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] на 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] в org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:585) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] в org.apache.catalina.connector.Connector.startInternal(Connector.java:1005) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] ... Пропущено 22 общих кадра Причина: java.io.IOException: Stream закрыт в java.base/java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:176) ~[на:на] в java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:342) ~[на:на] в java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:252) ~[на:на] в java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:271) ~[на:на] в java.base/java.security.DigestInputStream.read(DigestInputStream.java:125) ~[на:на] в java.base/java.io.DataInputStream.readInt(DataInputStream.java:392) ~[на:на] в java.base/sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:659) ~[на:на] в java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:222) ~[на:на] в java.base/java.security.KeyStore.load(KeyStore.java:1472) ~[na:na] в org.apache.tomcat.util.security.KeyStoreUtil.load(KeyStoreUtil.java:69) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] на org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:217) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] в org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore(SSLHostConfigCertificate.java:206) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] на 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 общих фреймов пропущены

Источник
Tommy Brettschneider
1 октября 2019 в 17:50
0

Вы пытались указать путь к вашему хранилищу ключей в «двойных кавычках» и с одинарными косыми чертами? например server.ssl.key-store="C:\Keystore\mykey.jks"

M. Deinum
1 октября 2019 в 18:03
0

Вы пробовали добавить к местоположению префикс file:?

user2803095
2 октября 2019 в 05:21
0

Да, я пробовал оба совета, но не повезло

TylerH
25 октября 2019 в 18:45
0

В чем вопрос, собственно?

Ответы (3)

avatar
James
5 декабря 2019 в 21:23
1

2.1.10.RELEASE также исправляет проблему, замеченную в 2.1.9.

avatar
DarrenK
9 октября 2019 в 17:58
7

Спасибо, Педро. У меня есть проблема с Spring Boot 2.1.9.RELEASE, и я могу подтвердить, что она решена путем перехода на 2.1.8.

Markus G.
11 октября 2019 в 07:27
0

У меня тоже работала Java 12 и с Spring 2.1.9.RELEASE до 2.1.8.RELEASE.

TylerH
25 октября 2019 в 18:45
0

...кто такой Педро?

avatar
Mark Thomas
2 октября 2019 в 09:28
25

Это регрессия, представленная в Tomcat 9.0.25, которая будет исправлена ​​в 9.0.27.

Pedro Casagrande
2 октября 2019 в 20:14
9

Понизился до Spring Boot 2.1.8 и решил проблему.

Thibstars
9 октября 2019 в 07:41
2

У кого-нибудь есть больше информации об этом? У меня была такая же проблема, и я обнаружил, что исключение действительно расплывчато.

rdguam
24 октября 2019 в 05:48
0

Кажется, это проблема, в которой отслеживается эта регрессия. Теперь вопрос закрыт. github.com/spring-projects/spring-boot/issues/18505

Brent Fisher
25 января 2021 в 21:59
0

На самом деле это относится к файлам в банке, а не к локальной файловой системе.