使用openssl将pfx格式SSL证书转pem格式时报RC2-40-CBC错误如何解决
问题原因
这个报错出现在OpenSSL 3.0及以上版本,新版本默认禁用了安全性较低的RC2-40-CBC老旧加密算法,而你所持有的PFX证书恰好是使用该算法加密导出的,因此转换时触发算法不支持错误。
解决方案
方案一:转换时添加legacy provider参数
直接在原命令后添加-legacy参数调用OpenSSL的旧算法支持组件即可,完整命令如下:
openssl pkcs12 -in filename.pfx -out filename.pem -legacy
执行后按提示输入PFX证书的保护密码即可完成转换。
方案二:分开导出私钥与公钥证书(适用于legacy参数无效的场景)
如果你的OpenSSL编译时没有包含legacy组件,可以分两步导出再合并:
- 导出私钥:
openssl pkcs12 -in filename.pfx -nocerts -out key.pem -nodes
- 导出公钥证书:
openssl pkcs12 -in filename.pfx -nokeys -out cert.pem
- (可选)合并为单个PEM文件:
cat key.pem cert.pem > filename.pem
如果要导入到AWS ACM,也可以直接分开上传私钥和证书文件,无需合并。
方案三:降级OpenSSL版本
如果上述方案都不生效,可以临时安装OpenSSL 1.1.x版本执行转换命令,转换完成后再切回原版本即可。
验证转换结果
转换完成后可以执行以下命令验证PEM文件有效性:
openssl x509 -in filename.pem -text -noout
无报错即可正常导入ACM使用。
内容的提问来源于stack exchange,提问作者Waelalmerri
相关产品推荐
相关产品推荐

