使用OpenSSL转换PFX为CRT/KEY遇RC2-40-CBC不支持错误求助
PFX转CRT/KEY时RC2-40-CBC不支持错误的解决办法
这个错误的核心原因是新版OpenSSL默认禁用了RC2-40-CBC这类弱加密算法,而你的测试PFX文件恰好使用该算法加密。以下是两种可行的解决方法:
方法一:使用-legacy参数启用旧算法支持
直接在转换命令中添加-legacy参数,让OpenSSL兼容RC2算法:
提取私钥(KEY文件):
openssl pkcs12 -in 你的测试文件.pfx -nocerts -out private.key -legacy执行后输入PFX的保护密码,再设置私钥的加密密码即可。如果需要生成无密码的私钥,追加
-nodes参数:openssl pkcs12 -in 你的测试文件.pfx -nocerts -out private.key -legacy -nodes提取证书(CRT文件):
openssl pkcs12 -in 你的测试文件.pfx -clcerts -nokeys -out public.crt -legacy输入PFX的保护密码即可完成提取。
方法二:修改OpenSSL配置启用Legacy提供者(备选)
如果-legacy参数无效(部分旧版本OpenSSL不支持),可以修改配置文件临时启用Legacy算法:
- 找到OpenSSL的配置文件(通常名为
openssl.cnf或openssl.cfg,路径可通过openssl version -d命令查看) - 打开文件,添加或修改以下配置段:
[openssl_init] providers = provider_sect [provider_sect] default = default_sect legacy = legacy_sect [default_sect] activate = 1 [legacy_sect] activate = 1 - 保存配置后,重新执行常规的PFX转换命令即可。
内容的提问来源于stack exchange,提问作者BurakBK
相关产品推荐
相关产品推荐

