Spring boot 2 ฝัง tomcat 9.0.26 ไม่สามารถโหลดไฟล์สตรีม jks ได้


11

ฉันพยายามใช้ SSL กับ spring boot 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) ~ [spring-boot-2.2.0 .BUILD-SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] ที่ org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer (ServletWebServerApplicationContext.java:297) บูต BUILD-SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] ที่ org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh (ServletWebServerApplicationContext.java:163) -SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] ที่ org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:553) ~ [spring-context-5.2.0.RELEASEjar! /: 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.refreshContext 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.0BUILD-SNAPSHOT] ที่ org.springframework.boot.SpringApplication.run (SpringApplication.java:1215) ~ [spring-boot-2.2.0.BUILD-SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] ที่ eu soluma.app.SolumaTdvApplication.main (SolumaTdvApplication.java:34) ~ [คลาส! /: 0.0.1-SNAPSHOT] ที่ java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (วิธีพื้นเมือง) ~ [na: na] ที่ java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) ~ [na: na] ที่ java.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke na: na] ที่ java.base / java.lang.reflect.Method.invoke (Method.javatt67) ~ [na: na] ที่ org.springframework.boot.loader.MainMethodRunner.run (MainMethodRunner.java:48) ~ [SolumaTDV-0.0.1-SNAPSHOT.jar: 0.01-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) ~ [SolumaTDVV -0.0.1-SNAPSHOT.jar: 0.0.1-SNAPSHOT] เกิดจาก: java.lang.IllegalArgumentException: standardService.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) ~ [spring-boot-2.2.0 .BUILD-SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] ที่ org.springframework.bootweb.embedded.tomcat.TomcatWebServer.start (TomcatWebServer.java:197) ~ [spring-boot-2.2.0.BUILD-SNAPSHOT.jar! /: 2.2.0.BUILD-SNAPSHOT] ... 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.026] ... ละเว้น 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] ที่ java.base / java.security.DigestInputStream.read (DigestInputStream.java:ava) ที่ java.base / java.io.DataInputStream.readInt (DataInputStream.java:392) ~ [na: na] ที่ java.base / sun.security.provider.JavaKeyStore.engineLoad (JavaKeyStore.java:659) ~ [na: na] ที่ java ฐาน / sun.security.util.KeyStoreDelegatorengineLoad (KeyStoreDelegator.java:222) ~ [na: na] ที่ 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) ~ 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.netAbstractJsseEndpoint.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

มันคือการถดถอยที่นำมาใช้ใน Tomcat 9.0.25 ที่จะได้รับการแก้ไขใน 9.0.27


9
ลดระดับเป็น Spring Boot 2.1.8 และแก้ไขปัญหาได้แล้ว
Pedro Casagrande

2
ไม่มีใครมีข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้? ฉันมีปัญหาเดียวกันและพบว่าข้อยกเว้นที่เกิดขึ้นจริงคลุมเครือ
Thibstars

นี่น่าจะเป็นปัญหาที่ติดตามการถดถอยนี้ ปัญหาถูกปิดแล้ว github.com/spring-projects/spring-boot/issues/18505
rdguam

7

ขอบคุณเปโดร ฉันมีปัญหากับ Spring Boot 2.1.9 ปล่อยและสามารถยืนยันว่าได้รับการแก้ไขโดยการลดระดับเป็น 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.