在实现C ++服务器时,我遇到了两个域指向同一服务器的问题。 使用boost实现标准SSL服务器并不是一个真正的问题,但我现在需要以某种方式决定连接时使用哪个证书。 我知道这是可能的,因为它是Mass Webhosting中的常见做法。
例如,单个Apache / nginx能够在同一端口上使用两个不同的证书提供两个不同的https网站(443)。我想在C ++中实现类似的行为。
apache如何处理这个?
是否可以使用boost asio实现此功能,还是需要使用一些较低级别的API(OpenSSL / OS)?
答案 0 :(得分:1)
预先告知服务器需要哪个主机的方法是使用服务器名称指示,如RFC 6066中所述。它向TLS添加了一个扩展字段server_name
,其中包括服务器名称列表,然后服务器可以使用该列表。
这不是必填字段,因此并非所有浏览器或服务器都支持它。但目前主流产品的支持还不错。