【发布时间】:2021-04-09 15:48:18
【问题描述】:
我创建了一个在 Azure Web App 服务中托管的容器中运行的 api 应用程序。此应用需要访问已加载到 azure Web 应用服务中的证书(使用 TLS/SSL 设置)。
我已尝试将 WEBSITE_LOAD_CERTIFICATES 设置为 *,但不确定是否有效。
那么我如何访问证书,以及如何确认它们在我的容器中可用。 (或者我必须手动将证书加载到我的容器中)
【问题讨论】:
我创建了一个在 Azure Web App 服务中托管的容器中运行的 api 应用程序。此应用需要访问已加载到 azure Web 应用服务中的证书(使用 TLS/SSL 设置)。
我已尝试将 WEBSITE_LOAD_CERTIFICATES 设置为 *,但不确定是否有效。
那么我如何访问证书,以及如何确认它们在我的容器中可用。 (或者我必须手动将证书加载到我的容器中)
【问题讨论】:
关于您的第一个问题:“不确定这是否有效”。
将WEBSITE_LOAD_CERTIFICATES设置为*是可以实现的,见这里:
WEBSITE_LOAD_CERTIFICATES应用设置使指定的 您的 Windows 或 Linux 容器应用程序可访问的证书 (包括内置的 Linux 容器)作为文件。
添加名为
WEBSITE_LOAD_CERTIFICATES的应用设置及其值 设置为证书的指纹将使其可以访问 您的网络应用程序。您可以有多个逗号分隔的指纹 值或可以将此值设置为“*”(不带引号)在这种情况下 您的所有证书都将加载到您的个人网络应用程序中 证书存储。
关于“我如何确认它们在我的容器中可用?”
此外,Windows Server Core 容器将证书加载到 证书自动存储在
LocalMachine\My中。加载 证书,遵循与在 Windows 中加载证书相同的模式 应用。对于基于 Windows Nano 的容器,使用提供的文件路径 以上直接从文件加载证书。
官方还提供了一个 C# 代码,展示了如何在 Linux 应用中加载公共证书。
using System;
using System.IO;
using System.Security.Cryptography.X509Certificates;
...
var bytes = File.ReadAllBytes("/var/ssl/certs/<thumbprint>.der");
var cert = new X509Certificate2(bytes);
// Use the loaded certificate
参考:
【讨论】: