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

无法为Azure应用网关配置带App Service证书的HTTPS监听

问题背景

我有一个关联了WAF的Azure应用网关,要配置HTTPS访问。已申请注册域名并关联到Azure App Service证书(未使用ARM模板,创建证书后完成配置并生成了Key Vault),网关已绑定公网IP。

遇到的问题:

  1. 最初将证书关联到Key Vault以实现自动续期时,碰到keyVaultCsmId错误,已通过先以vault access policy模式创建Key Vault,再切换回RBAC模式解决。
  2. 仍无法将网关与指定Key Vault关联,新增两个问题:
    • 证书配置完成后,无法列出Azure App Service证书名称,不知道如何检索并关联到应用网关;
    • 因权限不足,不确定按Azure提供的Key Vault配置文档操作能否完成网关配置。

附上PowerShell脚本:

# Get the Application Gateway we want to modify
$appgw = Get-AzApplicationGateway -Name MyApplicationGateway -ResourceGroupName MyResourceGroup
# Specify the resource id to the user assigned managed identity - This can be found by going to the properties of the managed identity
Set-AzApplicationGatewayIdentity -ApplicationGateway $appgw -UserAssignedIdentityId "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyManagedIdentity"
# Get the secret ID from Key Vault
$secret = Get-AzKeyVaultSecret -VaultName "MyKeyVault" -Name "CertificateName"
$secretId = $secret.Id.Replace($secret.Version, "") # Remove the secret version so Application Gateway uses the latest version in future syncs
# Specify the secret ID from Key Vault 
Add-AzApplicationGatewaySslCertificate -KeyVaultSecretId $secretId -ApplicationGateway $appgw -Name $secret.Name
# Commit the changes to the Application Gateway
Set-AzApplicationGateway -ApplicationGateway $appgw

咨询问题

  1. 该脚本是否是通过RBAC角色将证书及域名关联到网关的正确方式?
  2. 完成此任务需要申请哪种RBAC角色权限?
  3. 遵循Azure官方文档能否解决当前问题?
  4. 当Key Vault提示“该操作不被RBAC允许。若最近更改了角色分配,请等待几分钟使其生效。您无权查看这些内容。”时,如何检索证书名称?

解答

1. 脚本的正确性判断

脚本核心逻辑符合RBAC模式下的配置规范,但存在一处缺失:

  • 脚本通过用户分配的托管身份为应用网关授权访问Key Vault,移除证书版本号确保网关自动使用最新证书,这两部分是正确的;
  • 但脚本未包含域名与网关的关联配置,你需要额外创建HTTPS监听器并指定域名,再绑定到对应的后端池和路由规则,才能完成域名与网关的关联。

2. 所需RBAC角色权限

需分两类主体配置最小权限:

(1)你的操作账号

  • Key Vault Secrets Officer:允许管理Key Vault中的证书(以secret形式存储),包括查看、获取secret;
  • Application Gateway Contributor:允许修改应用网关配置,包括添加SSL证书、绑定托管身份;
  • Managed Identity Contributor:若需创建/管理用户分配的托管身份,需此角色。

(2)应用网关的用户分配托管身份

  • Key Vault Secrets User:仅需此角色即可让网关读取Key Vault中的证书secret,满足自动续期和证书使用需求,遵循最小权限原则。

3. 官方文档的作用

官方文档可以完全解决你的问题。关于应用网关通过托管身份访问Key Vault证书、HTTPS监听器配置、RBAC权限分配的内容,文档都有明确步骤说明,严格按流程操作即可解决权限和证书关联问题,完成HTTPS配置。

4. 无RBAC权限时检索证书名称的方法

你可以通过以下方式获取证书名称:

  • 回到Azure App Service证书配置页,在证书详情中可找到对应的Key Vault secret名称(即证书名称);
  • 联系Key Vault管理员,请求其列出secret名称,或临时为你分配Key Vault Secrets Reader权限以查看内容;
  • 查看Azure活动日志,搜索证书创建相关记录,日志中会包含对应的Key Vault secret名称。

内容的提问来源于stack exchange,提问作者Uomolepre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 15:17:06