更新时间:2025-08-30 GMT+08:00

开启SNI证书实现多域名访问

SNI(Server Name Indication 服务器名称指示)是一种TLS协议的扩展,用于解决在一个监听器托管多个域名时,需要根据不同的请求域名匹配证书进行认证的问题。

SNI概述

当您需要在同一个监听器上部署多个HTTPS后端服务时,每个服务可能使用不同的域名和证书,并需要将请求分发至不同的后端服务器组。

如果HTTPS监听器只绑定一个服务器证书,监听器将无法根据客户端请求的域名动态选择对应的证书进行认证,导致多域名场景认证异常。

开启SNI功能支持您扩展监听器上配置的证书,实现监听器根据请求域名的不同自动选择匹配的证书传递到客户端进行认证。客户端在发起SSL握手请求时提交请求的域名信息,ELB在收到请求后根据请求的域名查找对应的证书,如果监听器没有匹配到域名对应的证书,ELB将使用默认的服务器证书进行认证。

SNI证书

  • SNI证书是用于多域名认证场景的服务器证书,即指定了SNI扩展域名的服务器证书。在ELB控制台指定的SNI扩展域名必须与证书实际支持认证的域名保持一致。
  • 目前支持一个域名可以同时绑定ECC类型的证书和RSA类型的证书。在选择认证证书时,如果同域名绑定了两个证书,ELB会优先选择ECC类型的证书。

约束与限制

  • 仅HTTPS和TLS 监听器,支持开启SNI功能。开启SNI后,您需要为监听器配置至少一个SNI证书,如果您需要新建证书可参照创建证书
  • ELB不会自动更新证书,如果您有证书过期了,需要手动更换或者删除证书,详情请见绑定/更换证书
  • 一个HTTPS监听器默认支持配置30个SNI证书,监听器关联的所有SNI证书默认支持的域名总数为30个。

    独享型负载均衡的监听器最多支持调整为50个SNI证书,如您有需求,可提交工单进行处理。

证书匹配规则

  • SNI证书匹配规则:

    当证书的域名为*.test.com,那么可支持a.test.com、b.test.com等,不支持a.b.test.com、c.d.test.com等。

    且依据最长尾缀匹配:当证书中的域名同时存在*.b.test.com和*.test.com时,那么a.b.test.com会优先匹配到*.b.test.com。

  • cert-default为创建HTTPS监听器时绑定的默认服务器证书,cert-test01和cert-test02为新创建的用于SNI的证书。

    其中,证书cert-test01填写的域名为www.test01.com、cert-test02填写的域名为www.test02.com。

    如果访问负载均衡的域名与SNI证书匹配成功,则会使用SNI证书认证鉴权。如果匹配失败,则会使用默认的服务器证书认证鉴权。
    图1 配置证书说明

监听器开启SNI

  1. 进入弹性负载均衡列表页面
  1. 在弹性负载均衡列表页面,单击负载均衡名称。
  2. 在“监听器”页签,单击需要开启SNI的监听器名称。
  3. 在监听器基本信息页面,单击SNI右侧“配置”。
  4. 开启SNI的开关,选择需要配置的SNI证书。
    图2 配置SNI证书
  5. 单击“确定”。