Я пытаюсь использовать класс .Net System.Security.SslStream для обработки серверной части потока SSL / TLS с помощью аутентификации клиента.
Для выполнения рукопожатия я использую этот код:
SslStream sslStream = new SslStream(innerStream, false, RemoteCertificateValidation, LocalCertificateSelectionCallback);
sslStream.AuthenticateAsServer(serverCertificate, true, SslProtocols.Default, false);
К сожалению, это приводит к тому, что SslStream передает запрос CertificateRequest, содержащий имена всех сертификатов в моем хранилище доверенных корней CryptoAPI.
Я бы хотел изменить это. Я не могу требовать от пользователя установки или удаления сертификатов из доверенного корневого хранилища.
Похоже, что SslStream использует SSPI / SecureChannel, поэтому, если кто-нибудь знает, как сделать эквивалент с этим API, это тоже будет полезно.
Есть идеи?