通过C#Azure管理网库向Azure网站添加SSL绑定
我正在使用通过C#Azure管理网库向Azure网站添加SSL绑定,c#,azure,ssl,azure-management,azure-management-api,C#,Azure,Ssl,Azure Management,Azure Management Api,我正在使用Microsoft.WindowsAzure.Management.WebSites 4.4.2-prerelease库创建/修改Azure Web应用程序。我可以创建应用程序,可以更改设置,可以添加自定义域。下一步是添加SSL证书。 我是这样做的: public async Task<WebSiteUpdateResponse> UpdateSslCertificate(String sitename) { var updateParameters = new W
Microsoft.WindowsAzure.Management.WebSites 4.4.2-prerelease
库创建/修改Azure Web应用程序。我可以创建应用程序,可以更改设置,可以添加自定义域。下一步是添加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;
}
因此添加了新的证书,唯一的状态是0(websiteslstate.Disabled
),并且没有存储指纹
我做错什么了吗?如何将SSL证书分配给站点?我引用@trailmax对该问题的回答,以供将来参考
我已经设法使它工作了。主机名将由
CreateOrUpdateSiteHostNameBindingAsync()而不是site.HostNames:
虽然我不确定中的所有参数
HostNameBinding对象是必需的。你能核实一下吗
那里需要房产吗?(我从资源中获取了这些值
探索者)
谢谢你在这里复制。没有意识到我不是唯一一个有这个问题的人。
"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
}
],
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);