4

ライブラリを使用Microsoft.WindowsAzure.Management.WebSites 4.4.2-prereleaseして Azure WebApps を作成/変更しています。アプリを作成し、設定を変更し、カスタム ドメインを追加できます。次のステップは、SSL 証明書を追加することです。これが私がそれを行う方法です:

public async Task<WebSiteUpdateResponse> UpdateSslCertificate(String sitename)
{
    var updateParameters = new WebSiteUpdateParameters()
    {
        HostNameSslStates = new List<WebSiteUpdateParameters.WebSiteHostNameSslState>()
        {
            new WebSiteUpdateParameters.WebSiteHostNameSslState()
            {
                ToUpdate = true,
                Name = "mysubdomain.mydomain.com",
                SslState = WebSiteSslState.SniEnabled,
                Thumbprint = "blbhbblblblblblblbMyCertTHUMBPRINT",
            },
        },
    };
    var updateResult = await client.WebSites.UpdateAsync("Default-NorthEuropewebspace", sitename, updateParameters);
    return updateResult;
}

しかし、証明書を追加した後、ポータルのサイトに追加された証明書が表示されません。 サイトに SSL 証明書が追加されていません

証明書はワイルドカード証明書であり、すでにアップロードされています。新しいポータルを使用して SSL 証明書をサイトに追加する場合、問題なく実行できるので、価格の問題ではありません。

また、Azure Resource Managerにアクセスしてそのサイトに移動し、SslStates を探すと、次のようになります。

"hostNameSslStates": [
  {
    "name": "mysubdomain.mydomain.com",
    "sslState": 0,
    "ipBasedSslResult": null,
    "virtualIP": null,
    "thumbprint": null,
    "toUpdate": null,
    "toUpdateIpBasedSsl": null,
    "ipBasedSslState": 0,
    "hostType": 0
  },
  {
    "name": "testingcreation.azurewebsites.net",
    "sslState": 0,
    "ipBasedSslResult": null,
    "virtualIP": null,
    "thumbprint": null,
    "toUpdate": null,
    "toUpdateIpBasedSsl": null,
    "ipBasedSslState": 0,
    "hostType": 0
  },
  {
    "name": "testingcreation.scm.azurewebsites.net",
    "sslState": 0,
    "ipBasedSslResult": null,
    "virtualIP": null,
    "thumbprint": null,
    "toUpdate": null,
    "toUpdateIpBasedSsl": null,
    "ipBasedSslState": 0,
    "hostType": 1
  }
],

したがって、新しい証明書が追加され、状態のみが 0 ( WebSiteSslState.Disabled) になり、拇印は保存されません。

私は何か間違ったことをしていますか?SSL証明書をサイトに割り当てるにはどうすればよいですか?

4

1 に答える 1

1

https://github.com/davidebbo/AzureWebsitesSamples/issues/2から、@trailmax からのその質問に対する回答と、今後の参考のために引用します。

私はそれを機能させることができました。ホスト名は、site.HostNames ではなく CreateOrUpdateSiteHostNameBindingAsync() によって追加されます。

       var binding = new HostNameBinding()
         {
             Location = "North Europe",
             Name = hostName,
             CustomHostNameDnsRecordType = CustomHostNameDnsRecordType.CName,
             HostNameType = HostNameType.Verified,
             SiteName = siteName,
             Type = "Microsoft.Web/sites/hostNameBindings",
         };
         var result = await websiteClient.Sites.CreateOrUpdateSiteHostNameBindingAsync(resourceGroupName,
 siteName, hostName, binding);
         site = websiteClient.Sites.GetSite(resourceGroupName, siteName);

         site.HostNameSslStates.Add(new HostNameSslState
         {
             Name = hostName,
             Thumbprint = certificate.Thumbprint,
             SslState = SslState.SniEnabled,
             ToUpdate = true,
         });

         site = await websiteClient.Sites.CreateOrUpdateSiteAsync(resourceGroupName,
 siteName, site); 

HostNameBinding オブジェクトのすべてのパラメーターが必要かどうかはわかりませんが。そこに必要なプロパティを確認していただけますか? (リソース エクスプローラーから値を取得しました)

于 2016-02-02T13:18:52.020 に答える