Я перехожу с шаблона 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 # импортировать существующий сертификат службы приложений в мою новую группу ресурсов?