辅助实例上的Azure应用程序服务托管证书没有停机时间



我在Azure中使用流量管理器以主动/被动配置设置了一个web应用程序,因此两个不同地区的两个应用程序服务前面有TM。我已在两者上配置了相同的自定义域,并希望在两者上使用Azure应用程序服务托管证书。

TM配置文件是使用优先级模式配置的,因为我希望所有流量都转到主应用程序服务,只有在停机的情况下才能转到辅助应用程序服务。

当我尝试在第二个应用程序服务上添加证书时,我会收到类似以下的消息:

主机名不符合创建应用程序服务托管证书的条件。确保您的域abc.xyz.com有一个活动的CNAME记录,该记录设置为my-secondary-app-service.azurewebsites.net.

通过此设置,CNAME必须转到TM地址,这样可以在TM后面的所有端点上配置自定义域,但只允许在主端点上配置托管证书。

如何在不停机和CNAME更改的情况下在辅助端点上配置托管证书?

因此,基于此线程中的详细信息,我提出了一个设置此问题的解决方案,该解决方案不需要CNAME更改或停机,但在门户中部分是手动的。

一旦在两个端点上都配置了自定义域名,就可以使用上面链接中的脚本的以下部分为辅助端点创建证书:

$resourceGroupName = "my-resource-group"
$appServicePlan = Get-AzResource -Name "my-app-service-plan" `
-ResourceGroupName $resourceGroupName `
-ResourceType "Microsoft.Web/serverfarms"
$propertyObject = @{
canonicalName = "mydomain.com"
serverFarmId  = $appServicePlan.ResourceId
}
# create the certificate - Azure managed certificate names are usually of the form <domain name>-<app service name>
New-AzResource -Name "my-unique-certificate-name" `
-Location "westus" `
-PropertyObject $propertyObject `
-ResourceGroupName $resourceGroupName `
-ResourceType Microsoft.Web/certificates `
-Force

完成以上操作后,您只需配置从自定义域名到上面创建的证书的绑定即可完成该过程。这是通过辅助应用程序服务上"自定义域"下域名旁边的"添加绑定"选项完成的。

请注意,使用上面链接中的脚本的第二部分是不可能完成第二步的(这是因为抱怨缺少TXT DNS记录而失败的——我尝试了各种选项,但都不起作用(。也许可以通过ARM模板添加绑定,从而自动化整个过程——我还没有尝试过。

最新更新