Ubuntu 22.4安装OpenSSL 1.1.1解决RC2-40-CBC读取问题求助
在Ubuntu 22.04上处理RC2-40-CBC算法的.p12文件
针对你遇到的OpenSSL 3.x无法读取RC2-40-CBC算法.p12文件的问题,有两种可行解决方案:
方案一:安装并独立使用OpenSSL 1.1.1
Ubuntu 22.04的软件源仍提供OpenSSL 1.1.1的独立包,无需替换系统默认的3.x版本:
- 执行命令安装:
sudo apt update && sudo apt install openssl-1.1 - 使用时直接指定1.1.1版本的执行路径操作.p12文件,例如查看文件信息:
/usr/bin/openssl1.1 pkcs12 -in your_file.p12 -info - 该版本默认支持RC2-40-CBC算法,可正常处理目标文件。
方案二:在OpenSSL 3.x中启用Legacy算法
OpenSSL 3.x默认禁用了RC2-40-CBC这类弱算法,可通过以下方式启用:
临时启用(单命令生效)
执行命令时添加-legacy参数,例如:
openssl pkcs12 -in your_file.p12 -info -legacy
永久启用(全局生效)
修改OpenSSL配置文件/etc/ssl/openssl.cnf:
- 找到
[openssl_init]段,确保包含providers = provider_sect - 在文件末尾添加以下配置:
[provider_sect] default = default_sect legacy = legacy_sect [default_sect] activate = 1 [legacy_sect] activate = 1 - 保存配置后,后续所有OpenSSL命令默认支持Legacy算法。
额外建议
RC2-40-CBC属于弱加密算法,存在安全风险。处理完目标文件后,建议将证书转换为更安全的算法(如AES-256-CBC):
- 先导出PEM格式:
# 用OpenSSL 1.1.1 /usr/bin/openssl1.1 pkcs12 -in old.p12 -out temp.pem -nodes # 或用OpenSSL 3.x加legacy参数 openssl pkcs12 -in old.p12 -out temp.pem -nodes -legacy - 重新导出为安全加密的.p12文件:
openssl pkcs12 -export -in temp.pem -out new_secure.p12 -aes256
内容的提问来源于stack exchange,提问作者Harry
相关产品推荐
相关产品推荐

