DerInputStream.getLength(): lengthTag=111, too big.

沐子 阅读 5435 发表时间 2018-03-29 17:23:57
java springboot https

原因说明: 

使用springboot 启动https项目失败, 然后一直提示信息: 

DerInputStream.getLength(): lengthTag=111, too big.

分析
如果把证书单独放到某个文件目录下是木有问题的,猜测是否是路径太长导致的呢?

在本地测试排除了这个可能性,然后再网上找资料发现该异常时由于证书加载不正确导致,那就说明证书被修改过。

为了证实这种情况,我把maven打好的war中的证书文件替换掉,果然是这个原因。那证书为什么会被修改呢,原来就是maven-resources-plugin作怪。

解决办法

在pom.xml的插件中加入下面的代码

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <encoding>UTF-8</encoding>
        <!-- 过滤后缀为pem、pfx的证书文件 -->
        <nonFilteredFileExtensions>
            <nonFilteredFileExtension>pem</nonFilteredFileExtension>
            <nonFilteredFileExtension>pfx</nonFilteredFileExtension>
            <nonFilteredFileExtension>p12</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
    </configuration>
</plugin>


0个回复
有思考的问答, 才是有价值的问答, 否则将无任何记录价值.
关注极客云图了解更多内容