1

我正在尝试将 SNI 添加到我的客户端程序 (C/C++) 中,该程序使用 Microsoft SDK 的 Schannel API for TLS。

我到处搜索,但找不到任何关于 Schannel 如何支持 SNI 扩展的文档。我查找了 的文档 AcquireCredentialsHandle()InitializeSecurityContext()但没有成功。

那么,有人可以帮我提供一些示例代码吗?

4

1 回答 1

0

SNI被指定为ClientHello 的一部分,由InitializeSecurityContext(). 具体来说,Schannel 使用该函数的第三个参数进行证书验证,以及 SNI;但并非所有版本的 Windows 都支持 TLS 扩展(包括 SNI)。

TLS 扩展最初是在 Windows Vista 上的 Internet Explorer 7 beta 3 中引入的。另外,即使您的操作系统支持它,TLS 也可能默认关闭

CodeProject 上有一个工作示例,它显示了来自客户端和服务器端的 SNI。

于 2015-09-04T22:32:05.740 回答