Azure SDK ссылку сертификат в новую группу ресурсов - PullRequest
1 голос
/ 15 мая 2019

Я перехожу с шаблона ARM на вариант развертывания C # Azure SDK, и у меня возникла проблема с переводом использования существующего сертификата в новую группу ресурсов. У меня есть сертификат SSL, хранящийся в определенной группе ресурсов и Keyvault. У меня есть 3 среды в 3 другие группы ресурсов, созданные с помощью шаблона ARM, которые используют этот сертификат (привязки ssl webapps). Когда я захожу в свой сертификат на портале Azure, я вижу, что личный сертификат связан с моими 3 группами ресурсов

Этот кусок JSON импортирует сертификат ssl в новую группу ресурсов

{
      "type": "Microsoft.Web/certificates",
      "name": "MyCert",
      "apiVersion": "2016-03-01",
      "location": "[variables('Location')]",
      "properties": {
        "keyVaultId": "[parameters('keyvaultId')]",
        "keyVaultSecretName": "[parameters('KeyvaultSecretName')]",
        "thumbprint": "[parameters('certThumbprint')]"
      },
      "dependsOn": [
        "[concat('Microsoft.Web/serverfarms/', variables('WebAppAppPlanName'))]"
      ],
    },

Используя этот кусок json, создайте привязки ssl через отпечаток своего большого пальца:

{
      "name": "[concat(variables('WebAppName'),'/',variables('subDomain'), '.domain.fr')]",
      "apiVersion": "2016-08-01",
      "type": "Microsoft.Web/sites/hostNameBindings",
      "location": "[variables('Location')]",
      "dependsOn": [
        "[resourceId('Microsoft.Web/sites', variables('WebAppName'))]"
      ],
      "tags": {
        "displayName": "HostName"
      },
      "properties": {
        "siteName": "[variables('WebAppName')]",
        "customHostNameDnsRecordType": "CName",
        "hostNameType": "Verified",
        "sslState": "SniEnabled",
        "thumbprint": "[reference(resourceId('Microsoft.Web/certificates', 'CertName')).Thumbprint]"
      }
    },

Теперь я пытаюсь создать то же самое с помощью Azure SDK:

 webApp = webApp.Update()
                  .DefineHostnameBinding()
                  .WithThirdPartyDomain(domain)
                  .WithSubDomain(subdomain)
                  .WithDnsRecordType(CustomHostNameDnsRecordType.CName)
                  .Attach()
                  .Apply();

            webApp = webApp.Update()
                        .WithThirdPartyHostnameBinding(domain, subdomain)
                        .DefineSslBinding()
                            .ForHostname(hostName)
                            .WithExistingCertificate(certificateThumbPrint)
                            .WithSniBasedSsl()
                            .Attach()
                        .Apply();

Этот код не работает из-за сертификатаThumbprint, не найденного в моей недавно созданной группе ресурсов. Чего не хватает, так это эквивалента первого блока json, связывающего мой сертификат с моей группой ресурсов. Использование портала Azure и выполнение этого вручную называется «Импорт сертификата службы приложения»

Как программно с помощью Azure SDK в C # импортировать существующий сертификат службы приложений в мою новую группу ресурсов?

...