gpt4 book ai didi

c# - 无法在 Azure Function 中加载证书

转载 作者:行者123 更新时间:2023-12-02 06:20:04 25 4
gpt4 key购买 nike

我正在开发一个 Azure 函数,它需要从安全的 Base 64 字符串加载证书。该证书受 key 保护。证书和密码存储在 Azure Key Vault 中。

当我尝试从函数加载证书时,v1 和 v2 函数均出现错误。

这是用于加载证书的代码:

var certificate = new X509Certificate2(Convert.FromBase64String(certificateBase64), certificatePassword)

使用这段 .Net 代码,我遇到了一个奇怪的问题,我可以在本地重现。该问题与 .Net 4.6.1 有关。在 .Net Core 2.0 中,它在本地运行良好(在 Azure Function CLI 中),但我遇到了一个关于找不到文件的奇怪问题 ( https://github.com/dotnet/corefx/issues/11042 )

正如上一篇文章末尾提到的,我尝试了 X509KeyStorageFlags.EphemeralKeySet 标志。

var certificate = new X509Certificate2(Convert.FromBase64String(certificateBase64), certificatePassword, X509KeyStorageFlags.EphemeralKeySet)

该标志尚不适用于 .Net Core 2 ( https://github.com/dotnet/corefx/issues/24454 ),也不适用于 Azure Functions 使用的框架 .Net 4.6.1。

有没有办法强制 Azure Function v1 使用 Net Framework? .Net Core 2.0 中是否有任何简单解决方法,无需将证书存储为函数上的文件?

最佳答案

经过多次尝试,我找到了解决方案。必须使用标志X509KeyStorageFlags.MachineKeySet。它适用于 Function App V1 (.Net 4.6.1) 和 Function App V2 (.Net Core 2):

var certificate = new X509Certificate2(Convert.FromBase64String(certificateBase64), certificatePassword, X509KeyStorageFlags.MachineKeySet)

关于c# - 无法在 Azure Function 中加载证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52046122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com