HTTPS客户端 - 证书

时间:2016-08-25 15:51:20

标签: ssl

我在C中编写原始HTTPS客户端 - 一个获取域名的程序,将其解析为IP地址(通过DNS),连接到端口443(SSL)上的IP地址,执行SSL握手,然后通过SSL套接字。

要尝试此程序,我在网络服务器上托管了一个域。我为域安装了Let的加密证书。

我发现有许多域名与我的域名共享相同的IP地址。因此,当我连接到端口443上的IP地址以执行SSL握手时,谁确保将mydomain的SSL证书从服务器发送到客户端而不是属于共享相同IP地址的其他域名的另一个证书?< / p>

1 个答案:

答案 0 :(得分:2)

存在一个名为Server Name Indication (SNI)的TLS扩展,它被广泛使用(例如,需要http / 2客户端)。您可以在RFC 6066中找到此扩展程序的正式规范。

使用SNI,客户端可以在其Hello请求中发送所需的主机名,允许服务器为此连接选择匹配的密钥/证书组合。