将上传到Azure门户的TLS证书加载到Linux应用服务容器中

问题描述 投票:0回答:1

一段时间以来,我们已经在Azure应用服务上运行了ASP.NET Core Web应用。作为升级到netcoreapp2.2的一部分,我们决定对其进行Dockerize并在仍在应用程序服务中的Linux容器上运行它。

此应用程序要做的一件事就是加载TLS证书以进行令牌签名。以前,此证书已上传到应用程序服务,应用程序可以通过指纹在new X509Store(StoreName.My, StoreLocation.CurrentUser)中找到它。可以通过添加配置设置WEBSITE_LOAD_CERTIFICATES并将其值设置为证书的指纹来启用此功能。

使用Linux容器尝试了相同的方法,我们发现证书存储中不存在该证书。

我在今年早些时候发现了this issue on Github,这表明在Linux上是不可能的。还是这样吗?如果是这样,是否有人知道不涉及将证书本身存储在映像中的变通方法?

linux azure asp.net-core containers azure-app-service-plans
1个回答
0
投票

该功能现在可以在Linux上使用。

Load certificate in Linux apps

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);
© www.soinside.com 2019 - 2024. All rights reserved.