我正在尝试使用 .Net System.Security.SslStream 类来处理具有客户端身份验证的 SSL/TLS 流的服务器端。
为了执行握手,我使用以下代码:
SslStream sslStream = new SslStream(innerStream, false, RemoteCertificateValidation, LocalCertificateSelectionCallback);
sslStream.AuthenticateAsServer(serverCertificate, true, SslProtocols.Default, false);
不幸的是,这会导致 SslStream 传输包含我的 CryptoAPI 受信任根存储中所有证书的主题名的 CertificateRequest。
我希望能够覆盖这个。对于我来说,要求用户从受信任的根存储中安装或删除证书不是一个选择。
看起来 SslStream 在底层使用了 SSPI/SecureChannel,因此如果有人知道如何使用该 API 执行相同的操作,那也会很有帮助。
有任何想法吗?
目前看来使用 .NET 库不可能做到这一点。
我通过使用 System.Security.SslStream 的 Mono 类库实现解决了这个问题,它可以更好地访问在握手期间覆盖服务器的行为。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)