【发布时间】:2019-03-15 00:32:31
【问题描述】:
我正在尝试为现有 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'
是什么原因造成的?
【问题讨论】:
-
cert是否为空?如果不是,则未找到/导入私钥。 -
啊,我明白了。是的,它现在正在工作。谢谢!
-
我制定了一个答案。请标记它,以便其他用户可以获利。
标签: azure asp.net-core x509certificate azure-keyvault