如何通过Azure CLI或PowerShell更新APIM现有自定义域名的SSL证书
更新APIM自定义域名的SSL证书(从Key Vault获取)
前提条件
确保你的APIM实例拥有Key Vault的**证书读取(Get)**权限:
- 先获取APIM系统身份的Object ID:
# Azure CLI az apim show --name <APIM实例名> --resource-group <资源组名> --query identity.principalId -o tsv# PowerShell $apimIdentity = (Get-AzApiManagement -ResourceGroupName <资源组名> -Name <APIM实例名>).Identity.PrincipalId - 给Key Vault添加权限:
az keyvault set-policy --name <Key Vault名> --resource-group <KV资源组名> \ --object-id <上面获取的Object ID> --certificate-permissions getSet-AzKeyVaultAccessPolicy -VaultName <Key Vault名> -ObjectId $apimIdentity -PermissionsToCertificates Get
Azure CLI 命令
直接通过az apim update命令更新指定自定义域名的Key Vault证书,推荐用域名名称定位(无需记索引):
az apim update --name <APIM实例名> --resource-group <资源组名> \ --set "customDomains[?(@.name=='<你的自定义域名>')].keyVaultSecretId"="https://<Key Vault名>.vault.azure.net/secrets/<证书密钥名>/<可选:密钥版本>"
若不指定密钥版本,APIM会自动使用Key Vault中该密钥的最新版本。
PowerShell 命令
通过分步修改APIM配置对象来更新:
# 1. 获取APIM实例 $apim = Get-AzApiManagement -ResourceGroupName <资源组名> -Name <APIM实例名> # 2. 定位要更新的自定义域名配置 $domainConfig = $apim.CustomDomains | Where-Object { $_.Name -eq "<你的自定义域名>" } # 3. 设置新的Key Vault证书Secret ID $domainConfig.KeyVaultSecretId = "https://<Key Vault名>.vault.azure.net/secrets/<证书密钥名>/<可选:密钥版本>" # 4. 保存更改 Set-AzApiManagement -InputObject $apim
内容的提问来源于stack exchange,提问作者KSP
相关产品推荐
相关产品推荐

