首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >系统找不到指定的文件-- azure密钥库证书

问系统找不到指定的文件-- azure密钥库证书
EN

Stack Overflow用户
提问于 2020-07-08 03:36:00
回答 1查看 3.7K关注 0票数 14
  • 我在天蓝色金库里增加了一个pfx证书。
  • 我有一个asp.net web应用程序,通过其中一个端点,我试图从密钥库访问证书信息。 公共类KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));ValuesController : ControllerBase {公共异步任务Get() { AzureServiceTokenProvider azureServiceTokenProvider =新AzureServiceTokenProvider();var keyVaultClient =新KeyVaultClient(新X509Certificate2(Convert.FromBase64String(secret.Value));var ValuesController= await keyVaultClient.GetSecretAsync("").ConfigureAwait(false);X509Certificate2 certificateWithPrivateKey = new X509Certificate2(Convert.FromBase64String(secret.Value));返回certificateWithPrivateKey.FriendlyName;}
  • 我使用Azure管理标识和一切正确配置。
  • 当我在本地IIS express中运行web应用程序时,没有错误和端点给我想要的结果。
  • 现在,当我在azure和app服务应用程序上发布web应用程序时,试图调用端点,得到这个错误,

我已经添加了我的应用服务应用程序与天蓝色金库的访问策略(获取,列表),请提出什么原因?

2020-07-08 :20:48.986 +00:00错误Microsoft.AspNetCore.Server.IIS.Core.IISHttpServer:连接ID "16717361818409901973",请求ID "80001f98-0000-e800-b63f-84710c7967bb":应用程序引发了一个未处理的异常。Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException:系统找不到指定的文件。在Internal.Cryptography.Pal.CertificatePal.FilterPFXStore(Byte[] rawData,SafePasswordHandle密码,PfxCertStoreFlags pfxCertStoreFlags,在Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData,String fileName,SafePasswordHandle密码,X509KeyStorageFlags keyStorageFlags(在System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] data),在System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData),在Gateway.Controllers.ValuesController.Get()在C:\Work\AzureAdAuth\Gateway\Controllers\ValuesController.cs:line 26 at lambda_method(关闭,(对象)在Microsoft.Extensions.Internal.ObjectMethodExecutorAwaitable.Awaiter.GetResult() at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper映射器,ObjectMethodExecutor执行器,对象控制器,Object[]参数)的Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|12_0(ControllerActionInvoker调用程序,ValueTask1 actionResultValueTask) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Server.IIS.Core.IISHttpContextOfT1.ProcessRequestAsync()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-08 08:45:56

读取PFX需要加载用户配置文件。当我们添加WEBSITE_LOAD_CERTIFICATES时,它基本上会在后台加载配置文件,因此我们可以从文件系统中读取PFX。

Windows上的ASP.NET和ASP.NET Core必须访问证书存储区,即使从文件加载证书也是如此。若要在Windows .NET应用程序中加载证书文件,请将WEBSITE_LOAD_USER_PROFILE=1选项添加到应用程序的设置中。

有关更多细节,您可以参考此文章。

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62787147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档