3

感谢@dmahapatro,我在这里在春季启动情况下对 ssl 进行了急救:3.0.0.M1 如何在 https 连接上运行

所以我生成了一个密钥库:

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

我将 keystore.jks 复制到 grails-app/conf/

检查密钥库:

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.....

我添加到 application.yml:

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

(添加“key-store-type:JKS”没有帮助。)

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)

当我对旧资源插件的此类问题感到担忧时,我从 build.gradle 中删除了资产插件的所有行。它没有帮助。不仅如此,asset-plugin 仍然由 list-plugins 列出(也在 clean 命令之后)

稍后添加:如果我创建一个 PKCS12 格式的密钥库(并相应地调整 application.yml),我会得到一个不同的错误:

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

编辑:但如果我写在 application.yml 中,它会起作用:

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

我不知道,这是否值得一个 JIRA,或者这只是我的无能......

4

1 回答 1

0

Tomcat 无法从类路径加载密钥库:http: //docs.spring.io/spring-boot/docs/1.3.0.M5/reference/htmlsingle/#howto-configure-ssl

于 2015-10-06T08:54:16.037 回答