azure - Azure Key Vault 证书:找不到密钥
问题描述
我正在尝试为现有 API 启用 Azure Key Vault 证书。Azure Key Vault 帐户中已经有机密和 Azure Key Vault 证书。这是配置证书的代码:
public static IWebHost BuildWebHost() =>
WebHost.CreateDefaultBuilder()
.ConfigureAppConfiguration((context, config) =>
{
var env = context.HostingEnvironment;
config.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
var builtConfig = config.Build();
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var cert = store.Certificates.Find(X509FindType.FindByThumbprint, builtConfig["AzureKeyVault:CertThumbprint"], false);
config.AddAzureKeyVault(
$"https://{builtConfig["AzureKeyVault:Vault"]}.vault.azure.net/",
builtConfig["AzureKeyVault:ClientId"],
cert.OfType<X509Certificate2>().Single());
store.Close();
})
.UseStartup<Startup>()
.Build();
在我的本地计算机上,我正确导入了证书,其中包括下载 pfx 格式。
但我收到的错误信息是:
Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException:'AADSTS700027:客户端断言包含无效签名。[原因 - 未找到密钥。客户端使用的密钥指纹:'xxx'
有什么原因导致这种情况?
解决方案
该消息表明证书未使用私钥 ( certmgr.msc
) 导入,或者未为请求用户设置权限(使用机器存储时 - certlm.msc
)
推荐阅读
- javascript - 动态页面的jquery命名空间
- javascript - 如何访问另一个数组中的对象数组中的 ID 或名称?
- jhipster - jhipster 5 如何在不获取登录模式的情况下访问实体?
- python - Keras 中使用跳过连接的预训练权重初始化问题
- python - 从 chrome 扩展访问数据
- android - 使用 AsyncTask 从站点下载时遇到问题
- postgresql - PostgreSQL 查询计划中的“Plan Rows: 0”是什么意思?
- angular - 如何在 ElementRef (nativeEelement) 中设置 HTML 内容?
- r - 仅当 Internet Explorer 为默认浏览器时,才在 Chrome Web 浏览器中自动打开 R Shiny App
- twitter-bootstrap - Bootstrap - 拆分背景容器全宽