![](/img/trans.png)
[英]Intermittent SSL/TLS error using Azure SDK in Azure Website
[英]Remove / rebind SSL certificate from an Azure function using Azure SDK
我正在尝试在我的 azure 门户上自动执行获取 SSL 证书的过程。 为此,我编写了一个 Azure 函数,用于下载新证书,然后将其上传/绑定到我的 Web 应用程序。 代码如下所示:
app.Update()
.DefineSslBinding()
.ForHostname("*.my.domain")
.WithPfxCertificateToUpload(Path.Combine(executionContext.FunctionDirectory, "cert.pfx"), "pwd")
.WithSniBasedSsl()
.Attach()
.Apply();
它应该上传一个新证书并创建一个新的绑定。 它在没有现有证书/绑定的网络应用程序上按预期工作,但如果我再次运行该功能,我会遇到一些问题:
经过一些研究,我发现如果我在 azure cli 中使用az webapp config ssl list
列出我的证书,则门户上的列表会更新,即所有证书都在那里。 但这并没有多大帮助。
我的一般问题是:有没有其他方法可以重新绑定证书?
或者,一个明显的解决方法是提前删除现有绑定和证书:如何使用 .NET SDK 在 azure 函数中删除 SSL 证书?
找到路了应该分两步执行此操作:首先,上传证书
var certificate = await azure.AppServices.AppServiceCertificates
.Define($"some-name")
.WithRegion(app.Region)
.WithExistingResourceGroup(app.ResourceGroupName)
.WithPfxByteArray(pfxBytes)
.WithPfxPassword("test")
.CreateAsync();
然后使用WithExistingCertificate
:
await app.Update()
.DefineSslBinding()
.ForHostname("*.my.domain")
.WithExistingCertificate(certificate.Thumbprint)
.WithSniBasedSsl()
.Attach()
.ApplyAsync();
有一个挂起的拉取请求,以便在一次调用中执行此操作https://github.com/Azure/azure-libraries-for-net/pull/208
UPD: PR 已合并,因此您可以简单地使用单个调用而不是 2 个调用:
var certBytes = certificateService.RetreiveCertificate();
webapp
.Update()
.DefineSslBinding()
.ForHostname("my.hostname")
.WithPfxByteArrayToUpload(certBytes, "password")
.WithSniBasedSsl()
.Attach()
.Apply();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.