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