如何通过azure-keyvault 3.0.0-preview从Azure Key Vault Keys下载PEM文件?
如何从Azure Key Vault导出已上传的PEM文件
嘿,刚接触Azure Key Vault的话,确实会对密钥、机密和证书的操作有点懵,不过你已经完成了上传和获取数据的步骤,离导出PEM只差最后几步啦!下面我一步步给你讲清楚:
先确认一个关键前提
首先要检查你上传的密钥是否允许导出:
- 登录Azure门户,找到你的Key Vault,进入「密钥」列表,点击你上传的那个密钥
- 查看密钥的「属性」,确认「可导出」选项是「是」
- 如果是「否」的话,你需要重新上传密钥,上传时记得勾选「允许导出私钥」(如果是私钥的话),否则没法拿到完整的PEM材料哦
用Azure Key Vault SDK 3.0.0-preview导出PEM
你已经用预览版SDK获取到了KeyBundle结果,接下来只需要从这个结果里提取密钥材料,转换成PEM格式并保存成文件就行。这里给你用C#的示例代码(SDK的API逻辑是一致的,其他语言可以参考类似思路):
using Azure.Security.KeyVault.Keys; using Azure.Identity; using System.IO; // 初始化KeyClient(替换成你的Vault URI) var vaultUri = new Uri("https://your-vault-name.vault.azure.net/"); var client = new KeyClient(vaultUri, new DefaultAzureCredential()); // 获取你上传的密钥(替换密钥名称,版本可选) var keyBundle = await client.GetKeyAsync("your-key-name", "optional-key-version"); var jsonWebKey = keyBundle.Key; // 导出公钥PEM文件 // 根据你的密钥类型调整KeyType,比如Rsa/Ec var publicKeyPem = jsonWebKey.ToPem(KeyType.Rsa); File.WriteAllText("public-key.pem", publicKeyPem); // 如果密钥允许导出,导出私钥PEM文件 if (jsonWebKey.IsExportable) { var privateKeyPem = jsonWebKey.ToPem(KeyType.Rsa, includePrivateParameters: true); File.WriteAllText("private-key.pem", privateKeyPem); }
额外说明
- 如果你上传的是完整的证书PEM(包含证书链),其实更推荐上传到Key Vault的「证书」模块,那里直接支持导出完整的PEM格式证书;不过既然你已经传到密钥里了,上面的方法可以导出密钥部分。
- 不同密钥类型(RSA/EC)要对应调整代码里的
KeyType参数,不然会报错哦。
内容的提问来源于stack exchange,提问作者tomalex
相关产品推荐
相关产品推荐

