3.0.0.M1: SSL - Invalid keystore format

匿名 (未验证) 提交于 2019-12-03 00:59:01

问题:

Thanks @dmahapatro, I got first aid to ssl under spring-boot circumstances here: 3.0.0.M1 how to run on https connection

So I generated a keystore:

keytool -genkey -keyalg RSA -alias rawi -keystore keystore.jks -storepass pass.pass -validity 365 -keysize 2048 -storetype JKS 

I copied keystore.jks to grails-app/conf/

Check keystore:

keytool -list -keystore grails-app/conf/keystore.jks Enter keystore password:    Keystore type: JKS Keystore provider: SUN  Your keystore contains 1 entry  rawi, 04.02.2015, PrivateKeyEntry,  Certificate fingerprint (SHA1): E9:83:C0..... 

I added to application.yml:

server:   port: 8443   ssl:     key-store: classpath:keystore.jks     key-store-password: pass.pass     key-password: pass.pass 

(Adding "key-store-type: JKS" didn't help.)

grails> run-app > Configuring > 1/1 projects > Resolving dependencies ':agent' > Resolving dependencies '::compileJava UP-TO-DATE > Building 16% > :compileGroovy > Resolving dependencies ':compile' > Resolving dependenci:compileGroovy :processResources :classes :findMainClass > Building 83% > :run > Resolving dependencies ':runtime' > Resolving dependencies 'detach:run ERROR org.apache.coyote.http11.Http11NioProtocol - Failed to start end point associated with ProtocolHandler ["http-nio-8443"] java.io.IOException: Invalid keystore format         at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:650) ~[na:1.8.0_31]         at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55) ~[na:1.8.0_31]         at java.security.KeyStore.load(KeyStore.java:1433) ~[na:1.8.0_31]         at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:424) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:323) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:581) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:521) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:363) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:737) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:471) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.coyote.http11.Http11NioProtocol.start(Http11NioProtocol.java:80) [tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.catalina.connector.Connector.startInternal(Connector.java:986) [tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.catalina.core.StandardService.addConnector(StandardService.java:237) [tomcat-embed-core-8.0.15.jar:8.0.15]         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:186) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.st                                                                                   art(TomcatEmbeddedServletContainer.java:149) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:287) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483) [spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at grails.boot.GrailsApp.run(GrailsApp.groovy:40) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at grails.boot.GrailsApp.run(GrailsApp.groovy:187) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at grails.boot.GrailsApp.run(GrailsApp.groovy:176) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_31]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_31]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_31]         at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_31]         at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270) [springloaded-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) [groovy-2.4.0.jar:2.4.0]         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.StatithodSite.invoke(StaticMetaMethodSite.java:43) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.call(StaticMetaMethodSite.java:88) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) [groovy-2.4.0.jar:2.4.0]         at test.Application.main(Application.groovy:8) [main/:na] ERROR org.apache.catalina.core.StandardService - Failed to start connector [Connector[HTTP/1.1-8443]] org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-8443]]         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.catalina.core.StandardService.addConnector(StandardService.java:237) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:186) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:149) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:287) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483) [spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext                                                           .java:118) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at grails.boot.GrailsApp.run(GrailsApp.groovy:40) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at grails.boot.GrailsApp.run(GrailsApp.groovy:187) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at grails.boot.GrailsApp.run(GrailsApp.groovy:176) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_31]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_31]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_31]         at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_31]         at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270) [springloaded-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) [groovy-2.4.0.jar:2.4.0]         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.invoke(StaticMetaMethodSite.java:43) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.call(StaticMetaMethodSite.java:88) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) [groovy-2.4.0.jar:2.4.0]         at test.Application.main(Application.groovy:8) [main/:na] Caused by: org.apache.catalina.LifecycleException: service.getName(): "Tomcat";  Protocol handler start failed         at org.apache.catonnector.Connector.startInternal(Connector.java:993) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         ... 25 common frames omitted Caused by: java.io.IOException: Invalid keystore format         at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:650) ~[na:1.8.0_31]         at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55) ~[na:1.8.0_31]         at java.security.KeyStore.load(KeyStore.java:1433) ~[na:1.8.0_31]         at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:424) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:323) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:581) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:521) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:363) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:737) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:471) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.coyote.http11.Http11NioProtocol.start(Http11NioProtocol.java:80) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.catalina.connector.Connector.startInternal(Connector.java:986) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         ... 26 common frames omitted ERROR grails.boot.GrailsApp - Application startup failed java.lang.IllegalStateException: Tomcat connector in failed state         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:157) ~[spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:287) ~[spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141) ~[spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483) ~[spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) ~[spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691) ~[spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) ~[spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at grails.boot.GrailsApp.run(GrailsApp.groovy:40) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at grails.boot.GrailsApp.run(GrailsApp.groovy:187) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at grails.boot.GrailsApp.run(GrailsApp.groovy:176) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_31]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_31]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_31]         at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_31]         at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270) [springloaded-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.codehaus.grolection.CachedMethod.invoke(CachedMethod.java:90) [groovy-2.4.0.jar:2.4.0]         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.invoke(StaticMetaMethodSite.java:43) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.call(StaticMetaMethodSite.java:88) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) [groovy-2.4.0.jar:2.4.0]         at test.Application.main(Application.groovy:8) [main/:na] Exception in thread "main" java.lang.IllegalStateException: Tomcat connector in failed state         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:157)         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:287)         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141)         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483)         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)         at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)         at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)         at grails.boot.GrailsApp.run(GrailsApp.groovy:40)         at grails.boot.GrailsApp.run(GrailsApp.groovy:187)         at grails.boot.GrailsApp.run(GrailsApp.groovy:176)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         at java.lang.reflect.Method.invoke(Method.java:483)         at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270)         at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)         at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.invoke(StaticMetaMethodSite.java:43)         at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.call(StaticMetaMethodSite.java:88)         at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)         at test.Application.main(Application.groovy:8) :run FAILED  FAILURE: Build failed with an exception.  * What went wrong: Execution failed for task ':run'. > Process 'command '/usr/lib/jvm/java-8-oracle/bin/java'' finished with non-zero exit value 1  * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.  BUILD FAILED  Total time: 9.513 secs | Error Failed to start server (Use --stacktrace to see the full trace) 

As I red about such former problems with the old ressources plugin I deleted all lines of the asset-plugin from build.gradle. It didn't help. More than that, the asset-plugin is stil listed by list-plugins(also after a clean command)

Later addition: If I create a keystore in PKCS12 format (and I adapt application.yml accordingly) I get a different Error:

grails> run-app > Configuring > 1/1 projects > Resolving dependencies ':agent' > Resolving dependencies '::compileJava UP-TO-DATE > Building 16% > :compileGroovy > Resolving dependencies ':compile' > Resolving dependenci:compileGroovy UP-TO-DATE :processResources :classes :findMainClass > Building 83% > :run > Resolving dependencies ':runtime' > Resolving dependencies 'detach:run ERROR org.apache.coyote.http11.Http11NioProtocol - Failed to start end point associated with ProtocolHandler ["http-nio-8443"] java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big.         at sun.security.util.DerInputStream.getLength(DerInputStream.java:561) ~[na:1.8.0_31]         at sun.security.util.DerValue.init(DerValue.java:365) ~[na:1.8.0_31]         at sun.security.util.DerValue.<init>(DerValue.java:320) ~[na:1.8.0_31]         at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1872) ~[na:1.8.0_31]         at java.security.KeyStore.load(KeyStore.java:1433) ~[na:1.8.0_31]         at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:424) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:323) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:581) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:521) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:363) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:737) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:471) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.coyote.http11.Http11NioProtocol.start(Http11NioProtocol.java:80) [tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.catalina.connector.Connector.startInternal(Connector.java:986) [tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.catalina.core.StandardService.addConnector(StandardService.java:237) [tomcat-embed-core-8.0.15.jar:8.0.15]         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(Tomc                                                     atEmbeddedServletContainer.java:186) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:149) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:287) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483) [spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at grails.boot.GrailsApp.run(GrailsApp.groovy:40) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at grails.boot.GrailsApp.run(GrailsApp.groovy:187) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at grails.boot.GrailsApp.run(GrailsApp.groovy:176) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_31]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_31]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_31]         at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_31]         at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270) [springloaded-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod0) [groovy-2.4.0.jar:2.4.0]         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.invoke(StaticMetaMethodSite.java:43) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.call(StaticMetaMethodSite.java:88) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) [groovy-2.4.0.jar:2.4.0]         at test.Application.main(Application.groovy:8) [main/:na] ERROR org.apache.catalina.core.StandardService - Failed to start connector [Connector[HTTP/1.1-8443]] org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-8443]]         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.catalina.core.StandardService.addConnector(StandardService.java:237) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:186) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:149) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:287) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.jav                                                                   a:483) [spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE]         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) [spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at grails.boot.GrailsApp.run(GrailsApp.groovy:40) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at grails.boot.GrailsApp.run(GrailsApp.groovy:187) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at grails.boot.GrailsApp.run(GrailsApp.groovy:176) [grails-core-3.0.0.M1.jar:3.0.0.M1]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_31]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_31]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_31]         at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_31]         at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270) [springloaded-1.2.1.RELEASE.jar:1.2.1.RELEASE]         at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) [groovy-2.4.0.jar:2.4.0]         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.invoke(StaticMetaMethodSite.java:43) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.call(StaticMetaMethodSite.java:88) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) [groovy-2.4.0.jar:2.4.0]         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) [groovy-2.4.0.jar:2.4.0]         at test.ApplicatioApplication.groovy:8) [main/:na] Caused by: org.apache.catalina.LifecycleException: service.getName(): "Tomcat";  Protocol handler start failed         at org.apache.catalina.connector.Connector.startInternal(Connector.java:993) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ~[tomcat-embed-core-8.0.15.jar:8.0.15]         ... 25 common frames omitted Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big.         at sun.security.util.DerInputStream.getLength(DerInputStream.java:561) ~[na:1.8.0_31]         at sun.security.util.DerValue.init(DerValue.java:365) ~[na:1.8.0_31]         at sun.security.util.DerValue.<init>(DerValue.java:320) ~[na:1.8.0_31]         at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1872) ~[na:1.8.0_31]         at java.security.KeyStore.load(KeyStore.java:1433) ~[na:1.8.0_31]         at ----- CUT HERE BECAUSE OF SIZE LIMITATION OF MASSAGES 

EDIT: But it works if I write in application.yml:

server:   port: 8443   ssl:   keyStore: file:/absolute/path/to/keystore ... 

I don't know, if this is worth a JIRA, or it is only my incapacity...

回答1:

Tomcat cannot load keystore from classpath: http://docs.spring.io/spring-boot/docs/1.3.0.M5/reference/htmlsingle/#howto-configure-ssl



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!