辅助实例上的 Azure 应用服务托管证书无需停机

标签 azure dns azure-web-app-service azure-traffic-manager

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

TM 配置文件使用优先级模式进行配置,因为我希望所有流量都转到主应用服务,并且仅在发生停机时才转到辅助应用服务。

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

Hostname not eligible for App Service Managed Certificates creation. Ensure that your domain abc.xyz.com has an active CNAME record which is set to my-secondary-app-service.azurewebsites.net.

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

如何在辅助端点上配置托管证书,而无需停机和 CNAME 更改?

最佳答案

因此,根据 this thread 中的详细信息我想出了一个解决方法来设置此问题,不需要更改 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

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

请注意,使用上面链接中的脚本的第二部分无法执行第二步(此操作失败,提示缺少 TXT DNS 记录 - 我尝试了各种选项,但没有一个有效)。也许可以通过 ARM 模板添加绑定(bind),从而使整个过程自动化 - 我还没有尝试过这一点。

关于辅助实例上的 Azure 应用服务托管证书无需停机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68441838/

相关文章:

azure - 用于监控的遥测与组织洞察

c# - 使用不同的引用和框架编译.NET项目

sql-server - SQL Azure V12 BACPAC 导入错误 : "The internal target platform type SqlAzureV12DatabaseSchemaProvider does not support schema file version ' 3. 3'"

security - SSL iframe嵌入其他网站

dns - 如何检查服务器是否支持 xmpp 协议(protocol)?

不同域上的 Django 管理员

azure - 如何配置每月只需启动并运行几天的应用服务

mysql - Web 应用程序数据库 ECONNRESET

azure - Azure Synapse Link 是在数据仓库中加载数据的好方法吗?

azure - 如何将 Docker 容器日志从 Azure 应用服务发送到 Seq 日志服务器?