SNI - 服务器名称指示

在负载均衡器上开启HTTPS协议时,需要绑定证书。假设LB上服务了多个域名,而每个域名都有不同的证书,所以负载均衡上此时要绑定多个证书。

SNI(Server Name Indication)解决了这个问题,它根据客户端的实际域名请求(如www.mycorp.com), 找到对应的证书返回给客户端:

image-20220929194940848

借助 SNI,负载均衡器还支持智能证书选择。如果客户端指定的主机名与多个证书匹配,那么负载均衡器会基于多个因素确定要使用的最适合的证书。

注意,这个特性仅支持NLB和ALB。

下图是SNI的一个示例,我们在负载均衡器上绑定了多个域名的证书,它可以根据客户端的域名请求来智能选择使用哪个证书:

image-20220929194926683

CLB上的多域名证书

如果CLB上也要实现服务多个域名,且使用HTTPS协议,该如何操作呢?

CLB最多支持绑定一个证书,此时要通过通配符多域 (SAN - Subject Alternate Name) 证书才能在同一个负载均衡器后面托管多个域名服务。

但管理多域证书(SAN)带来了额外的的运营开销,每当新的域名添加时,SSL证书都要发生变化。相比之下SNI就简单了很多