Я следую этой документации Microsoft, но когда я отправляю запрос через Postman, это не происходит. не нашел никаких сертификатов.
Это все, что я сделал и попробовал:
AuthorizationFilterAttribute
Код: Выделить всё
public class RequireCertificateAttribute : AuthorizationFilterAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
{
actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
{
ReasonPhrase = "HTTPS Required"
};
}
else
{
X509Certificate2 cert = actionContext.Request.GetClientCertificate();
if (cert == null)
{
actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
{
ReasonPhrase = "Client Certificate Required"
};
}
base.OnAuthorization(actionContext);
}
}
}
Код: Выделить всё
[RequireCertificate]
[HttpGet]
[Route("ssl/test")]
public IHttpActionResult SslTest()
{
return Ok();
}
[img]https://i.stack.imgur. com/kX1gU.png[/img]
Самоподписанный сертификат SSL создается с помощью команды ниже
Код: Выделить всё
makecert.exe -n "CN=Development CA" -r -sv TempCA.pvk TempCA.cer
И сертификат клиента
Код: Выделить всё
makecert.exe -pe -ss My -sr CurrentUser -a sha1 -sky exchange -n "CN=name" -eku 1.3.6.1.5.5.7.3.2 -sk SignedByCA -ic TempCA.cer -iv TempCA.pvk
Флаги SSL, которые я добавил в файл IISExpress «applicationhost.config», расположенный в «Documents\IISExpress\config»

Я также добавил флаги в файл конфигурации проекта.
Вот как я добавил экспортированный сертификат клиента в Postman:
[img]https://i.stack.imgur. com/1c4Ll.png[/img]

Я также пытался экспортировать файл PFX, но получил тот же результат.
Вот что я получаю по запросу:

Нулевой сертификат :

Я использую .net framework 4.8
Чего мне не хватает?
Подробнее здесь: https://stackoverflow.com/questions/783 ... rning-null
Мобильная версия