У нас есть сервер Windows 2012, принимающий VPN-подключения через SSTP и аутентифицирующий их с помощью функции Network Policy Server на том же сервере. Для аутентификации клиента мы установили требование сертификатов, что работает хорошо. Слишком хорошо. Проблема в том, что он принимает любой клиентский сертификат, если сервер доверяет корневому CA в цепочке. Это означает, что он принимает не только сертификаты смарт-карт (выданные центром сертификации, который мы вручную добавили в хранилище доверенных сертификатов), но также «программные» сертификаты, выпущенные нашим внутренним центром сертификации и хранящиеся на клиентских компьютерах.
Такое поведение нежелательно, поскольку мы хотим потребовать от всех использовать настоящую смарт-карту при подключении к серверу VPN. Есть ли способ заставить это? Сделать сервер NPS доверять только определенному ЦС? Или проверить какой-то конкретный атрибут в сертификате?
Вы можете контролировать, какой центр сертификации должен доверять NPS, настроив его Надежный корневой центр сертификации. Просто удалите из магазина все "мягкие" ЦС.
Я не знаю других вариантов.