У меня есть сервер IIS, настроенный с ARR для обратного обращения прокси-запросов к внутреннему серверу. Однако для внутреннего сервера требуется проверка подлинности сертификата клиента. ему нужно только аутентифицировать обратный прокси (не конечный пользователь).
Аутентификация конечного пользователя проходит внутри содержимого запроса и не является проблемной частью.
End User -->-- IIS with ARR -->(mutual SSL)>-- Backend web server
Как настроить сертификат клиента в IIS или ARR?
При поиске я часто нахожу вопросы и темы, связанные с пересылкой сертификата клиента от конечного пользователя на внутренний сервер, а это невозможно. Кроме того, они обычно указывают на отключение проверки подлинности сертификата клиента на внутреннем сервере, но это должно оставаться включенным.
Вот несколько вопросов, которые я нашел, но все они относятся к сертификату клиента конечного пользователя:
Скорее всего, Microsoft ARR использует CAPI для хранения своих сертификатов, но нет гарантии, что ARR будет использовать его, даже если вы сделаете сертификат доступным для него. Аутентификация на стороне клиента требует дополнительного кода, и ваши требования не так распространены. Его можно было не заметить и оставить позади ...
Чтобы сделать ваш клиентский сертификат доступным для службы, вы должны отредактировать ее "MY" CAPI store. Запустите mmc.exe из командной строки с повышенными привилегиями и добавьте оснастку сертификата. Вам нужно будет выбрать, какое хранилище CAPI использовать. Выберите магазин компьютера. Импортируйте свой сертификат в «Личные сертификаты», убедившись, что вы импортировали с ним закрытый ключ (это будет сказано, когда вы вернетесь и просмотрите импортированный сертификат).
Если добавить сертификат в компьютерное хранилище не удается, попробуйте сервисный магазин. Это потребуется, если ARR работает с собственным идентификатором.
У меня также была проблема с AD-LDS, когда у службы не было доступа для чтения к закрытому ключу. Эта статья было полезно, но это могло быть слишком далеко для ARR. Найдите на этой странице особый случай ADAM, вам нужна команда
Certutil –V –Verifystore MY 0