Eri*_*oos 6 ssl azure .net-core azure-functions
我在共享应用服务计划中有一个 Azure Function 应用,但我不想通过 Azure 门户导入我的证书。这是因为此应用程序服务计划是在组织内共享的,并且这些证书是客户端证书,我想确保我是唯一能够访问它们的人。
因此,我使用 Function 应用程序设置导入它们(并且我将它们移至 Vault 以提高安全性)。
byte[] bytearray; // PFX file, imported from settings using base64 encoding
string password; // Imported from settings
certificates = new X509Certificate2Collection();
certificates.Import(bytearray, password, X509KeyStorageFlags.UserKeySet | X509KeyStorageFlags.PersistKeySet);
Run Code Online (Sandbox Code Playgroud)
使用它们就像这样
var handler = new HttpClientHandler();
handler.ClientCertificateOptions = ClientCertificateOption.Manual;
foreach (var cert in certificates)
handler.ClientCertificates.Add(cert);
Run Code Online (Sandbox Code Playgroud)
但连接被拒绝,并出现错误“无法识别提供给包的凭据”。
我尝试了一些事情
小智 9
X509Certificate2如果您从包含私钥的 pfx 文件或证书编码设置实例,您可能会遇到CryptographicException:系统找不到指定的文件。
原因是 Windows 将私钥作为文件存储在用户配置文件目录下。默认情况下,Azure Web App (AppService) 不加载用户配置文件(避免大多数不需要的场景的开销)。因此,系统找不到指定的文件。问题。要解决此问题,请设置以下 appSetting 以启用用户配置文件。
WEBSITE_LOAD_USER_PROFILE=1
通过设置 应用程序设置WEBSITE_LOAD_USER_PROFILE = 1,Azure 网站将加载给定应用程序的用户配置文件,因此应用程序可以从 PFX 文件加载证书。
参考:
| 归档时间: |
|
| 查看次数: |
1430 次 |
| 最近记录: |