You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:25:22