通过 SChannel 进行 TLS1.2:服务器提供证书而不是颁发者

通过 SChannel 进行 TLS1.2:服务器提供证书而不是颁发者

在 TLS1.2 握手期间,我从服务器获取了受信任证书的列表。我假设,这些应该是服务器信任的颁发者。OpenSSL 称它们为Acceptable client certificate CA names,所以这些是证书颁发者!?然而,我的客户证书在其中,但没有客户端证书的颁发者名称。(对于 OpenSSL,这似乎没问题。)

这是服务器实现中的错误吗?

有没有办法使用 schannel(例如通过 Windows 下的 cURL,也可以通过 .NET)来提供我的证书?据我了解,schannel 意识到發行人我的证书没有列在那里,所以它不使用该证书。因此,握手失败。即使颁发者没有列出,是否可以强制 schannel 使用特定证书?

编辑1. 澄清一下,我只想与服务器对话,服务器不受我控制。我的客户端实现应该基于 C#/.Net,最好是 schannel,因此,到目前为止,我都在使用 cURL (schannel) 进行测试;遗憾的是,服务器被视为 (未知) 常量。

谢谢!

相关内容