在Azure ARM模板重新部署期间是否存在自定义DNS名称和TLS绑定?

问题描述 投票:-1回答:1

情况:

我们已经使用自定义ARM模板为客户端部署了多个相同的App Service实例。这些服务托管在客户端自己的Azure帐户上。部署后,客户端开始为所有面向Web的实例手动配置了自定义DNS名称和TLS证书。我们无权访问其私人证书(我们也不需要):

enter image description here

一切正常,但是...

问题:我担心如果/当我们必须重新部署我们的ARM模板时,TLS配置将被清空。通常,当客户端想要更改某些设置时,我将自定义并重新部署所有实例。我需要确保在这种情况下不会丢失其TLS配置。

我具有用于DNS和TLS绑定的ARM配置(引用私有证书指纹),也许将这些块合并到我们的ARM模板中足以持久保存客户端的配置?

 {
     "type": "Microsoft.Web/sites/hostNameBindings",
     "apiVersion": "2018-11-01",
     "name": "[concat(parameters('site_name'), '/', parameters('site_name'), '.xxxxxx.com')]",
     "location": "West Europe",
     "dependsOn": [
         "[resourceId('Microsoft.Web/sites', parameters('site_name'))]"
     ],
     "properties": {
         "siteName": "site-name",
         "hostNameType": "Verified",
         "sslState": "SniEnabled",
         "thumbprint": "45DA3B...67"
     }
 }

 ...     

 "hostNameSslStates": [
 {
     "name": "[concat(parameters('site_name'), '.xxxxxx.com')]",
     "sslState": "SniEnabled",
     "thumbprint": "45DA3B...67",
     "hostType": "Standard"
 },
 ...

问题:即使没有私有证书的访问权限,有没有办法保留和合并客户的TLS设置?我在Azure ARM文档中找不到确定的答案。

澄清:我知道有更干净的方法可以通过ARM自动执行DNS / TLS配置,但是现在我无法更改设置,需要使用已有的东西。

azure azure-resource-manager
1个回答
0
投票

如果不通过ARM进行SSL配置,则最好从ARM模板中完全省略这些部分。我们有相同的情况,并且效果很好。确保ARM以增量模式执行,否则您可能会遇到问题。

  • 不要使用您的ARM模板部署任何Microsoft.Web/sites/hostNameBindings资源
  • hostNameSslStates资源中删除Microsoft.Web/sites

您可以使用像this一样简单的ARM模板对其进行测试:

    {
      "apiVersion": "2018-11-01",
      "type": "Microsoft.Web/sites",
      "kind": "app",
      "name": "[variables('webAppPortalName')]",
      "location": "[parameters('location')]",
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]"
      ]
    }

不会触摸您的SSL配置,因此您的绑定保持不变。

© www.soinside.com 2019 - 2024. All rights reserved.