如何从Azure Key Vault获取原始PFX证书文件
Azure Key Vault下载PFX文件密码不匹配问题分析与解决
问题原因
Azure Key Vault存储导入的PFX证书时,会用自身管理的密钥重新加密私钥部分,因此下载得到的PFX文件和原始文件并非同一文件(哈希值不同就是直接证明)。你用原始PFX的密码自然无法解密下载后的文件。
至于Azure CLI下载时出现的DES-EDE3-CBC解密密码提示,是因为CLI默认下载的是经过三重DES加密的临时加密包,这个密码不是你创建原始PFX时的密码,而是下载流程中需要指定的导出密码。
解决方法
1. 门户UI操作步骤
- 前提检查:导入证书到Key Vault时,必须在「导入证书」界面勾选允许私钥导出选项。如果未勾选,私钥无法导出,只能重新导入并勾选该选项。
- 下载与解密:
- 进入证书的「当前版本」页面,点击「下载PFX/PEM」;
- 在弹出的对话框中设置一个新的导出密码(不是原始PFX的密码);
- 下载完成后,使用这个新设置的导出密码来解密PFX,提取密钥和证书。
2. Azure CLI操作步骤
- 下载证书时直接指定导出密码,命令如下:
az keyvault certificate download --vault-name <你的密钥库名称> --name <证书名称> --file <保存文件名>.pfx --encoding base64 --password <自定义导出密码>
- 用指定的密码提取密钥和证书:
# 提取私钥 openssl pkcs12 -in <下载的文件名>.pfx -nocerts -out ca-key.pem -passin pass:<你的导出密码> # 提取证书 openssl pkcs12 -in <下载的文件名>.pfx -clcerts -nokeys -out ca-crt.pem -passin pass:<你的导出密码>
注意事项
- 下载后的PFX与原始PFX哈希值不同是正常现象,Azure只是重新加密了私钥容器,证书和私钥的实际内容与原始文件一致。
- 若导入时未开启私钥导出权限,任何导出操作都会失败,必须重新导入证书并勾选该选项。
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

