.NET Core HttpClient-证书无法通过服务器

时间:2018-11-15 16:21:20

标签: .net-core certificate

我正在尝试如何使用证书限制对API的访问。我的问题是,我无法使证书真正通过API。

这就是我设置HttpClient

的方式
var handler = new HttpClientHandler();
handler.ClientCertificates.Add(new X509Certificate2("certificate.cer"));

var httpClient = new HttpClient(handler);
httpClient.BaseAddress = new Uri("http://localhost:54261/api/");
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

现在,在服务器端,在自定义AuthorizationHandler中,我注入IHttpContextAccessor,然后尝试获得这样的证书

var clientCertificate = _httpContextAccessor.HttpContext.Connection.ClientCertificate;

不幸的是,clientCertificate始终为空。

我使用此软件生成了自签名证书: http://www.itiverba.com/en/software/itisscg.php

我只是生成了一个证书,即一个CA。然后,我生成了由先前生成的CA证书签名的普通证书。我选择将它们都复制到证书存储中。

我尝试了类似的步骤

  • 将证书添加到受信任的帐户(希望此操作正确完成了)
  • SslNegotiateCert中的applicationhost.config添加到sslFalgs

最后,证书为空。我可以要求一些指导,什么地方错了?

0 个答案:

没有答案
相关问题