前言
如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!
https改造-加载证书-DerInputStream.getLength(): lengthTag=111, too big.
1. 失败处
@Value("${server.ssl.key-store:classpath:yzy.p12}")
private String keyStorePath;
Resource keyStoreResource = resourceLoader.getResource(keyStorePath);
KeyStore keyStore = KeyStore.getInstance("PKCS12");
try (InputStream keyStoreInputStream = keyStoreResource.getInputStream()) {
keyStore.load(keyStoreInputStream, keyStorePassword.toCharArray());
}
其中keyStore.load(keyStoreInputStream, keyStorePassword.toCharArray());
的时候报错DerInputStream.getLength(): lengthTag=111, too big.
2. 失败原因
在maven编译过程中密钥文件被修改了,所以解决问题的关键就是不要让maven打包过程中修改这个密钥文件。
3. 解决
第一种方式,不使用Resource方式,使用绝对路径。
第二种添加组件:
<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>