Azure 应用程序网关限制 - 通配符 SSL 证书

Azure 应用程序网关限制 - 通配符 SSL 证书

我们有大约 60 个客户端应用程序,每个应用程序都在一个公共域中拥有自己的子域 URL,即 client1.domainname.com、client2.domainname.com... - 所有这些都由一个通配符 SSL 证书 *.domainname.com 覆盖。目前在本地托管一对 LB 和 2 个后端 IIS 节点,使用主机标头作为子域 URL 和 cookie 会话亲和性。

我们需要将此环境迁移到 Azure 并利用应用程序网关。不幸的是,AG 有一些严重的限制https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits?toc=%2fazure%2fapplication-gateway%2ftoc.json#application-gateway-limits,即:

1) HTTP Listeners   20
2) Number of sites  20  1 per HTTP Listeners
3) URL Maps per listener    1

问题:

A) 关于 #2,通配符域名 *. domainname.com 是否可以被视为 1 个网站/用于主机名监听器定义的属性?

  • 如果不是,那么是否意味着我需要为每个客户端创建 1 个侦听器,即 HTTPSListener1-> client1.domainname.com,HTTPSListener2->client2.domainname.com 等等?
    • 如果答案是“是”,我可以使用相同的通配符证书 *.domainname.com 吗?SSL证书多个侦听器的属性,而只改变主机名字段是否特定于客户端(子域)?
      • 如果真是这样,那么考虑到每个 AG 限制为 20 个监听器,我需要创建 3 组单独的 AG 才能容纳我的 60 个子域,这意味着我将因运行额外的 AG 对而产生不必要的成本

B) 本地只有 2 个后端节点,为了节省成本,我们更希望在 Azure 中使用相同的节点;我的理解是多个 AG 集不能指向相同的后端 VM。是否可以解决这个问题的方法是每个 VM 有多个 vNIC 并指向不同的 AG 集,即 AG1 集->vNIC0 主集、AG2 集->vNIC1 辅助集、AG3 集->vNIC2 辅助集?

抱歉,这个问题问得太尖锐了,但我希望其他人会发现这个帖子很有用,因为关于这个主题的详细信息似乎不容易获得。

监听器示例:

"httpListeners": [
    {
        "name": "appGatewayHttpsListener1",
        "properties": {
            "FrontendIPConfiguration": {
                "Id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/frontendIPConfigurations/DefaultFrontendPublicIP"
            },
            "FrontendPort": {
                "Id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/frontendPorts/appGatewayFrontendPort443'"
            },
            "Protocol": "Https",
            "SslCertificate": {
                "Id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/sslCertificates/appGatewaySslCert1'"
            },
            "HostName": "domainname.com" ,
            "RequireServerNameIndication": "true"
        }
    },

答案1

如果我理解正确的话,您不需要为侦听器设置路径名。您可以改为使用单个全局侦听器来覆盖整个 *.domain.com。这有帮助吗?

相关内容