使用cryptography生成的PKCS#12文件无法导入Adobe Acrobat Reader
解决cryptography生成的PKCS#12无法导入Adobe Acrobat Reader的问题
核心原因
你发现的加密算法差异就是问题所在:Adobe Acrobat Reader对PKCS#12加密算法的兼容性有局限,cryptography默认BestAvailableEncryption使用的pbeWithSHA1And3-KeyTripleDES-CBC不被其支持,而OpenSSL默认采用的pbeWithSHA1And40BitRC2-CBC是Adobe兼容的算法。
修复方案
生成PKCS#12时,明确指定Adobe兼容的RC2加密算法,替换原来的BestAvailableEncryption:
修改后的代码片段
user_certificate_bytes = pkcs12.serialize_key_and_certificates( name=None, key=key, cert=certificate, cas=None, encryption_algorithm=serialization.pkcs12.PBESHA1And40BitRC2CBC( password.encode('utf-8') ) )
补充说明
- 若后续需要更高强度的加密,可尝试
PBESHA1And3KeyTripleDESCBC,但根据你的测试情况,优先使用RC2版本确保兼容性 - 私钥和证书的加载流程无需改动,保持原有步骤即可
内容的提问来源于stack exchange,提问作者orangeman
相关产品推荐
相关产品推荐

