Я пытался настроить авторизацию клиентского сертификата на конечной точке IIS. После обучения на https://joji.me/en-us/blog/how-to-create-an-iis-website-that-requires-client-certificate-using-self-signed-certificates/ Я создал корневой сертификат, а затем сертификат сервера и сертификат клиента из этого корневого сертификата.
Я вижу это на своем сервере (Windows 2012 R2, используя IIS 8.5), когда я устанавливаю корневой сертификат в хранилище доверенных корневых сертификатов, а клиентский сертификат — в личное хранилище для текущего пользователя, я могу перейти к конечной точке.Я ввожу адрес (https://localhost/foobar/endpointName), появляется список клиентских сертификатов, из которых я могу выбрать, и если я выбираю правильный, я достигаю конечной точки.
Другое дело дистанционно. Когда я пытаюсь с другой машины, на которой установлен тот же сертификат клиента в личном хранилище пользователя, я не получаю список клиентских сертификатов на выбор, я просто получаю ошибку 403 Unauthorized. В этом случае URL-адрес https://serverCertName.domain.com/foobar/endpointName, где serverCertName.domain.com имеет правильную запись A. Я также пытался сделать это в IE, где вы можете специально загрузить сертификат, и получил тот же результат. В журналах IIS на сервере, к которому я пытаюсь подключиться, эти попытки регистрируются как ошибка 403.7.
Я также пробовал это из кода на удаленном сервере с помощью HttpClient (C#) и также получал там неавторизованный. Я довольно долго смотрел на свой экран, пытаясь понять, в чем может быть разница между моими локальными запросами и моими удаленными, но на этот раз мои навыки поиска в Интернете подвели меня.