Maven编译后证书字节变大,too big pfx,导致解密失败,cer,pfx
来源:互联网 发布:天猫 淘宝商城手机 编辑:程序博客网 时间:2024/04/27 17:07
更多详情请戳-原文lanyinbin.cn
问题背景
1:最近在做电子发票的对接,里面有一个加密和解密的方法涉及到相关证书,后缀是cer和pfx的,在普通的java工程中测试通过,放到maven项目中始终报解密失败,最终查找后发现是maven编译的问题
2:异常信息
java.io.IOException: DER length more than 4 bytes: 111
发现问题
查了一圈,没有得到好的解答,开始从原理入手,关于证书起始就是一个文件,不应该参与编译的,为什么会被编译,开始想到maven的编译,去查看java项目编译后和maven编译后的目录文件发现,maven编译后使得cer证书变大,导致解密失败
- 如图所示
没有编译前
编译后
解决方法
1:从原理入手,cer和pfx作为证书只是一个文件而已,不应该被编译,是在运行的时候再读取,所以应该把文件不放在这个项目里,比如一个配置平台,如果证书替换也方便,个人认为是最好的方案
2:阻止maven编译
build中阻止,相关配置如下:
<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>/CA/tungkongca.cer</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> <excludes> <exclude>/CA/tungkongca.cer</exclude> </excludes> </resource> </resources></build>
maven-plugin中阻止,相关配置如下:
<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> </nonFilteredFileExtensions> </configuration>
建议使用第一种
阅读全文
0 0
- Maven编译后证书字节变大,too big pfx,导致解密失败,cer,pfx
- maven编译证书后证书变大too big pfx,cer
- 公钥证书cer,pfx
- 关于pfx证书和cer证书
- 从自签名证书导出pfx和cer证书
- cer和pfx区别
- openssl pfx cer
- 证书,jks、pfx和cer后缀都是什么文件
- android 实现https通讯,通过读取cer或pfx证书
- 证书,jks、pfx和cer后缀都是什么文件
- openssl生成cer、pfx、crt
- pfx证书转jks
- java生成PFX证书
- java生成pfx证书
- PFX证书文件制作
- java生成PFX证书
- 使用OpenSSL将pfx证书转换成cer格式的证书
- jks(私钥)keystore(私钥)truststore(受信任的公钥)cer(公钥)pfx(浏览器);密钥对,公钥,证书,私钥,jks,keystore,truststore,cer,pfx说明
- 关键字高亮显示
- MVC5+EF6 入门完整教程六
- ABAP SCREEN常用元素定义
- sublime 日常使用问题
- stm32 bootloader
- Maven编译后证书字节变大,too big pfx,导致解密失败,cer,pfx
- IE浏览器显示不正常
- Yii 原生pdo 语句
- 把需求变化带来的代码修改成本降至最低的一种方法
- 开放数据集
- 欢迎使用CSDN-markdown编辑器
- I
- 选择排序
- MySQL: ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes