Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=111

 更新时间:2024年10月27日 08:45:23   作者:知楠行易  
这篇文章主要介绍了Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1. 出错环境描述:

web项目升级 https ,配置证书后启动报错。

2. 出错检测

出错的原因:SSL 证书(keystore)配置不正确。修改路径为server.ssl.key-store=classpath:keystore.p12 正常可用。

2.1 检查SSL证书是否正确

keystore.p12 文件检测命令为:

keytool -list -v -keystore path/to/keystore.p12 -storetype PKCS12 -storepass 123456
  • -list:列出密钥库中的条目。
  • -v:显示详细信息。
  • -storetype :指定密钥库的类型,也就是加密算法类型。
  • -storepass : 指定密钥库的密码。

2.2 检查SSL证书是否有被处理导致文件内容错误

举个例子:
maven 配置了资源文件占位符替换,所以导致二进制文件(.p12)有问题:

<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <!-- 对资源文件进行占位符替换 -->
                <filtering>true</filtering>
            </resource>
        </resources>
</build>             

解决办法

<resources>
    <resource>
         <directory>src/main/resources</directory>
         <filtering>true</filtering>
         <excludes>
             <exclude>**/*.p12</exclude>
         </excludes>
     </resource>
     <resource>
         <directory>src/main/resources</directory>
         <filtering>false</filtering>
         <includes>
             <include>**/*.p12</include>
         </includes>
     </resource>
 </resources>

2.3 检测项目是否有缓存,可以重新构建项目。

2.4 检查文件路径是否正确

可以先配置绝对路径去检测是否找到正确的文件并加载

举个例子,我的证书文件在 /resources-env/dev 下,

└── resources
    ├── application.properties
    ├── resources-env
    │   ├── dev
    │   │   ├── application-dev.properties
    │   │   └── keystore.p12
    │   └── prod
    └── static
        └── index.html

maven 配置如下:

 <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <excludes>
                    <exclude>**/*.p12</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**/*.p12</include>
                </includes>
            </resource>

            <resource>
                <directory>src/main/resources-env/${env}</directory>
                <filtering>false</filtering>
            </resource>
        </resources>

配置的地址是:server.ssl.key-store=classpath:/resources-env/dev/keystore.p12 ,会抛出另一个异常:

Caused by: java.io.FileNotFoundException: class path resource [/resources-env/dev/keystore.p12] cannot be resolved to URL because it does not exist

正确的配置应该是:server.ssl.key-store=classpath:keystore.p12

注意: classpath: 表示从 src/main/resources 开始查找,因此你需要指定完整路径。

正确的配置应该是:server.ssl.key-store=classpath:keystore.p12

注意: classpath: 表示从 src/main/resources 开始查找,因此你需要指定完整路径。

到此这篇关于Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big.的文章就介绍到这了,更多相关Caused by: java.io.IOException内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java SpringBoot 中的操作事务

    Java SpringBoot 中的操作事务

    这篇文章主要介绍了Java SpringBoot 中的操作事务,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • java开发中为什么双重效验锁要加volatile

    java开发中为什么双重效验锁要加volatile

    这篇文章主要为大家介绍了java开发中为什么双重效验锁要加volatile原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Java读取文件的几种方式详细总结

    Java读取文件的几种方式详细总结

    这篇文章主要给大家介绍了关于Java读取文件的几种方式,文中通过代码示例将几种方式介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友可以参考下
    2023-08-08
  • Struts2中接收表单数据的三种驱动方式

    Struts2中接收表单数据的三种驱动方式

    这篇文章简单给大家介绍了Struts2中接收表单数据的三种驱动方式,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-07-07
  • Java 使用 HttpClient 发送 GET请求和 POST请求

    Java 使用 HttpClient 发送 GET请求和 POST请求

    本文主要介绍了Java 使用 HttpClient 发送 GET请求和 POST请求,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 简单讲解奇偶排序算法及在Java数组中的实现

    简单讲解奇偶排序算法及在Java数组中的实现

    这篇文章主要介绍了奇偶排序算法及Java数组的实现,奇偶排序的时间复杂度为O(N^2),需要的朋友可以参考下
    2016-04-04
  • MyBatis流式查询的项目实践

    MyBatis流式查询的项目实践

    本文主要介绍了MyBatis流式查询的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 一文详解Mybatis-plus的介绍与使用

    一文详解Mybatis-plus的介绍与使用

    Mybatis-Plus 是 MyBatis 的一个增强工具,专门针对于传统MyBatis开发中sql需要手动进行映射配置繁琐缺点的一款框架技术。本文将为大家详细讲讲Mybatis-plus的介绍与使用,感兴趣的可以了解一下
    2022-07-07
  • Java模拟扑克牌洗牌实现生成52张扑克的方法示例

    Java模拟扑克牌洗牌实现生成52张扑克的方法示例

    这篇文章主要介绍了Java模拟扑克牌洗牌实现生成52张扑克的方法,涉及Java数组遍历、重排及输出等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • SpringBoot如何切换成其它的嵌入式Servlet容器(Jetty和Undertow)

    SpringBoot如何切换成其它的嵌入式Servlet容器(Jetty和Undertow)

    这篇文章主要介绍了SpringBoot如何切换成其它的嵌入式Servlet容器(Jetty和Undertow),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07

最新评论