【问题标题】:Bulk/mass change SSL certificates on Azure app services (web apps)批量/批量更改 Azure 应用服务(Web 应用)上的 SSL 证书
【发布时间】:2019-09-22 20:42:36
【问题描述】:
我的通配符 SSL 已过期,并且我已将新证书(不同的授权)上传到 Azure。
..但我想知道是否有办法将所有使用旧证书的网站批量更改为新证书。在普通 IIS 上,当您对旧证书上的任何一个站点进行更改时,它会询问您是否要更新使用旧证书的其他绑定,以便它们也使用新证书。我有大约 30 个站点需要迁移到新证书,而且会很麻烦
Azure 上是否有等效功能?如果 portal.azure.com 不这样做,Powershell 是可以接受的。
【问题讨论】:
标签:
azure
ssl
ssl-certificate
azure-web-app-service
【解决方案1】:
为此,我一直在 Powershell 中使用 Azure CLI。首先使用这些值构建一个 CSV 文件或数组。它需要包含:
- 网络应用名称
$指纹
然后遍历
$Thumbprint = "12bnhgikjbkj13kjbblahblah"
$WebApps = @("WebApp1","WebApp2","WebApp3") #OR
Foreach ($WebApp in $WebApps) {
az webapp config ssl bind --certificate-thumbprint $Thumbprint --ssl-type SNI --resource-group ResourceGroupName --name "$WebApp"
}
您也可以使用来自here 的New-AzureRmWebAppSSLBinding 来执行此操作。还有一个指南here 说明如何操作。
【解决方案2】:
我在 Azure Cloud Shell 中使用了以下代码来枚举有多少应用程序正在使用旧指纹并将它们更新为新指纹。我发现这比写下每个应用服务名称更容易。
您需要确保先导入新证书。
az account set --subscription "My Application"
$webapp_ids=(az webapp list --query "[?hostNameSslStates.[thumbprint=='OLD_THUMBPRINT']].id" --output tsv)
az webapp config ssl bind --certificate-thumbprint "NEW_THUMBPRINT" --ssl-type SNI --ids $webapp_ids