C++SSL虚拟主机

C++ SSL Virtualhosting

本文关键字:虚拟主机 C++SSL      更新时间:2023-10-16

在实现C++服务器时,我遇到了两个域指向同一服务器的问题。使用boost实现标准SSL服务器并不是一个真正的问题,但我现在需要以某种方式决定在连接时使用哪个证书。我知道这是可能的,因为这是大规模网络托管的常见做法。

例如,单个Apache/nginx能够在同一端口上使用两个不同的证书提供两个不同https网站(443)。我想在C++中实现类似的行为。

apache是如何处理的?

是否可以使用boost asio实现这一点,或者我是否需要使用一些较低级别的API(OpenSSL/OS)?

提前告知服务器需要哪个主机的方法是使用服务器名称指示,如RFC 6066中所述。它向TLS添加了一个扩展字段server_name,其中包括服务器名称列表,然后服务器可以使用该列表。

这不是一个必需的领域,所以不是所有的浏览器或服务器都支持它。但目前主流产品的支持是好的。