我正在尝试使用 .Net System.Security.SslStream 类来处理带有客户端身份验证的 SSL/TLS 流的服务器端。
要执行握手,我使用以下代码:
SslStream sslStream = new SslStream(innerStream, false, RemoteCertificateValidation, LocalCertificateSelectionCallback);
sslStream.AuthenticateAsServer(serverCertificate, true, SslProtocols.Default, false);
不幸的是,这会导致 SslStream 传输一个 CertificateRequest,其中包含我的 CryptoAPI Trusted Root Store 中所有证书的主题名。
我希望能够覆盖它。我不能要求用户从受信任的根存储中安装或删除证书。
看起来 SslStream 在下面使用 SSPI/SecureChannel,所以如果有人知道如何使用该 API 进行等效操作,那也会很有帮助。
有任何想法吗?