![](/img/trans.png)
[英]CallerFilePathAttribute not returning file path with valid directory separators on azure's linux container app service
[英]Loading a TLS certificate uploaded to the Azure portal into a Linux app service container
一段时间以来,我们在 Azure 应用服务上运行了一个 ASP.NET Core Web 应用。 作为升级到 netcoreapp2.2 的一部分,我们决定对它进行 Dockerize 并在 Linux 容器上运行它,仍然在应用程序服务中。
此应用程序所做的一件事是加载 TLS 证书以进行令牌签名。 以前,此证书已上传到应用程序服务,应用程序将通过指纹在new X509Store(StoreName.My, StoreLocation.CurrentUser)
找到它。 这可以通过添加配置设置WEBSITE_LOAD_CERTIFICATES
并将值设置为证书的指纹来启用。
对 Linux 容器尝试了相同的方法后,我们发现证书存储中不存在该证书。
我从今年早些时候在 Github 上发现了这个问题,这表明它在 Linux 上是不可能的。 现在还是这样吗? 如果是这样,有没有人知道不涉及将证书本身存储在图像中的解决方法?
该功能现在适用于 Linux。
WEBSITE_LOAD_CERTIFICATES 应用程序设置使您的 Linux 托管应用程序(包括自定义容器应用程序)可以作为文件访问指定的证书。 这些文件位于以下目录下:
- 私有证书 - /var/ssl/private(.p12 文件)
- 公共证书 - /var/ssl/certs(.der 文件)
证书文件名是证书指纹。 以下 C# 代码显示了如何在 Linux 应用程序中加载公共证书。
using System; using System.Security.Cryptography.X509Certificates; var bytes = System.IO.File.ReadAllBytes("/var/ssl/certs/<thumbprint>.der"); var cert = new X509Certificate2(bytes);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.