gpt4 book ai didi

c# - KeyVault - 如何从我的 C# 应用程序获取存储在 keyvault 中的 pfx 文件?

转载 作者:行者123 更新时间:2023-12-03 04:17:49 26 4
gpt4 key购买 nike

这是一个与 keyvault 相关的问题。我在 keyvault 中存储了 pfx 证书(带有私钥)。从我的服务主体中,我尝试访问 keystore 以获取证书。我正在编写以下代码来检索 pfx 证书。但证书文件没有私钥☹我无法获取在所有身份验证均有效的情况下放入的私钥文件:

        var keyVaultService = new KeyVaultService(keyVaultSettings);
var pfx = await keyVaultService.GetKeyVaultSecretValue("test-cert");

Assert.IsTrue(!string.IsNullOrEmpty(pfx));

var bytes = Convert.FromBase64String(pfx);
var coll = new X509Certificate2Collection();
coll.Import(bytes, null, X509KeyStorageFlags.Exportable);
var cert = coll[0];
Assert.IsTrue(cert.HasPrivateKey); // Assert FAILS!!!
var key = cert.PrivateKey.ToString();
Console.WriteLine("private key: " + key);

最佳答案

你的代码看起来不错。没有太多内容,但我也在控制台应用程序中快速尝试了一下,它返回 cert.HasPrivateKey 作为 true。

我假设您指定了正确的 keyvault 设置,并且 secret 名称将正是您的证书名称。

我发现有两个可能的原因:

  1. 您从 KeyVault 获得了正确的响应,但在转换为字节时丢失了它。示例 - 看看这个类似的问题 - How do I use the private key from a PFX certificate stored in Azure Key Vault in .NET Core 2?

  2. 您可能需要检查是否已将证书正确上传到 KeyVault。是否有可能您没有正确地将证书添加到保管库?或者仅添加 pfx 的公共(public)证书部分。

如果其中任何一个都没有意义,请分享更详细的代码或要点,这样会更容易分辨。

关于c# - KeyVault - 如何从我的 C# 应用程序获取存储在 keyvault 中的 pfx 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51565401/

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