【问题标题】:spring boot https PKCS12 DerInputStream.getLength(): lengthTag=111, too bigspring boot https PKCS12 DerInputStream.getLength():lengthTag=111,太大
【发布时间】:2019-05-15 12:00:12
【问题描述】:

我需要在 https 上使用 Spring Boot 应用程序。我有一个letsencrypt签名密钥。我像这样将此证书转换为 PKCS12:

openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name tomcat -CAfile chain.pem -caname root

我将此密钥库文件复制到资源目录,这是配置部分:

require-ssl: true

server:
  port: 8443
  ssl:
    key-store-type: PKCS12
    key-store: classpath:keystore.p12
    key-store-password: xxxxx
    key-alias: tomcat

如果我检查这个密钥库,我得到了这个:

keytool -list -keystore keystore.p12 
Keystore type: PKCS12
Keystore provider: SUN

Your keystore contains 1 entry

tomcat, May 15, 2019, PrivateKeyEntry, 
Certificate fingerprint (SHA-256): 

当我启动我的应用程序时:

Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big.
at sun.security.util.DerInputStream.getLength(DerInputStream.java:599)
at sun.security.util.DerValue.init(DerValue.java:391)
at sun.security.util.DerValue.<init>(DerValue.java:332)
at sun.security.util.DerValue.<init>(DerValue.java:345)
at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1938)
at java.security.KeyStore.load(KeyStore.java:1445)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:449)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:353)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:606)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:546)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:371)
at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:763)
at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:491)
at org.apache.catalina.connector.Connector.startInternal(Connector.java:986)

我还需要配置其他吗? 谢谢, 扎梅克

【问题讨论】:

    标签: spring spring-boot https


    【解决方案1】:

    我发现了问题,我的 pom.xml 中有一个资源过滤插件破坏了密钥文件。我不得不从资源过滤器插件中排除密钥文件。

    【讨论】:

    • 没有解决我的主要问题,但我的应用程序有相同的行为。 maven过滤了key,过滤后被销毁了
    • @zamek z 你能进一步解释一下吗,我也有同样的问题。
    • 谢谢,这正是我的问题。
    • 谢谢,帮了大忙!
    【解决方案2】:

    如果您使用不同的二进制文件,也会出现此错误。

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2021-10-27
    • 2016-10-22
    • 2014-06-01
    • 1970-01-01
    • 2019-05-15
    • 2018-03-22
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    相关资源
    最近更新 更多