Я разработал простой сервис WEB API в .Net Core 2.1
Я пытаюсь реализовать аутентификацию сертификата клиента, чтобы я мог предоставить доступ к API только клиентам, у которых есть определенныйсертификат установлен на их компьютере.
Клиенты получают доступ к API через браузер (Chrome, Edge, IE11 или Firefox).
Я добавил в метод API запрос сертификата:
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
X509Certificate2 cert = Request.HttpContext.Connection.ClientCertificate;
if (cert!=null && cert.Verify())
{
//more verification here...
return Content("....", "application/json");
}
else
{
return Content("....", "application/json");
}
}
затем я установил самозаверяющий сертификат и добавил его в доверенный корень, включив функцию аутентификации клиента.
но переменная cert всегда равна нулю, и браузер даже не предлагал мне использовать сертификат, когда я запрашиваю страницу.
Я полагаю, потому что я должен где-то установить, чтовеб-сервер должен запрашивать сертификат клиента, как это можно установить в IIS, но в моей среде разработки я использую IIS Express.
Как заставить IIS express запрашивать сертификат клиента