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

Azure证书分配至VM问题求助:无法添加Key Vault存储的证书

别着急,我帮你一步步解决把Azure Key Vault证书分配到VM失败的问题!先从最容易忽略的前置条件排查,再给你Portal和CLI两种操作方案,还有故障排查的技巧,应该能搞定。

先排查最容易踩坑的前置条件

这些是很多人失败的根源,先确认一遍:

  • Key Vault必须和VM在同一Azure区域,跨区域的话证书根本没法推送
  • 给VM的身份(系统分配或用户分配)在Key Vault的访问策略里必须有**证书获取(Get)和密钥获取(Get)**权限——因为证书底层关联了密钥,缺一个都不行
  • 要分配的证书必须是PFX格式,而且不能设置密码——Azure VM的证书扩展不支持带密码的PFX文件
  • VM的操作系统得是支持的版本:Windows Server 2012 R2及以上,Linux的话Ubuntu 16.04+、CentOS 7+、RHEL 7+这些主流发行版都可以
分步操作指南(Azure Portal 可视化版)

1. 给VM启用系统分配身份

  • 打开你的VM在Azure Portal的详情页,切换到标识选项卡,选择系统分配标签
  • 把状态改成开启,点击顶部的保存,等个1-2分钟让身份生效

2. 配置Key Vault的访问策略

  • 打开目标Key Vault的详情页,切换到访问策略选项卡,点击添加访问策略
  • 在密钥权限里勾选获取,在证书权限里也勾选获取
  • 点击选择主体,在搜索框里输入你的VM名称(系统分配身份的名称就是VM本身的名字),选中后点击选择
  • 回到访问策略页面,点击添加,然后再点击顶部的保存

3. 把证书分配到VM

  • 回到VM的详情页,切换到证书选项卡,点击添加
  • 在弹出的窗口里,选择你的Key Vault,然后从下拉列表里选要分配的证书
  • 点击确定,等待1-2分钟,系统会自动部署证书扩展并推送证书
分步操作指南(Azure CLI 命令行版)

如果Portal操作一直失败,试试CLI,有时候命令行的反馈更清晰:

  1. 给VM启用系统分配身份:
az vm identity assign --name <你的VM名称> --resource-group <你的资源组名称>
  1. 获取VM身份的主体ID(后续配置权限要用):
az vm show --name <你的VM名称> --resource-group <你的资源组名称> --query "identity.principalId" -o tsv
  1. 给Key Vault添加访问策略:
az keyvault set-policy --name <你的Key Vault名称> --object-id <上面获取的主体ID> --certificate-permissions get --key-permissions get
  1. 推送证书到VM:
az vm secret add --name <你的VM名称> --resource-group <你的资源组名称> --vault-name <你的Key Vault名称> --secret <证书的名称或版本ID>
故障排查进阶技巧

如果还是失败,试试这些方法定位问题:

  • 检查VM的扩展状态:转到VM的扩展选项卡,看看AzureKeyVaultForWindows(Windows VM)或AzureKeyVaultForLinux(Linux VM)扩展有没有报错,点击扩展可以查看详细日志
  • 查看Key Vault的操作日志:转到Key Vault的日志选项卡,搜索GetCertificate操作,看看有没有权限拒绝(403)的记录——如果有,说明访问策略没配对
  • 确认证书状态:在Key Vault的证书页面,确保证书是已启用状态,而且没有过期或被吊销
  • 重启VM:有时候证书扩展部署卡住,重启VM后再尝试分配操作,大概率能解决

内容的提问来源于stack exchange,提问作者Jean-Pierre Carvalho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:21:55