开启SNI证书实现多域名访问
SNI(Server Name Indication)是一种TLS协议的扩展,用于解决在一个服务器使用多个域名证书时如何正确匹配证书的问题。
操作场景
当您需要在同一个监听器中根据HTTPS请求域名的不同来选择不同的证书进行认证,并将请求分发至不同的后端服务器组时,可以通过开启SNI功能来实现配置多域名HTTPS网站。
开启SNI之后,用户需要为监听器添加域名对应的SNI证书。客户端在发起SSL握手请求时提交请求的域名信息,负载均衡在收到SSL请求后,会根据请求的域名查找对应的证书。如果找到域名对应的SNI证书,则使用该证书进行认证。如果没有找到域名对应的SNI证书,则使用服务器证书完成认证。
约束与限制
SNI证书约束
- SNI证书:用于SNI扩展认证的服务器证书,需要指定域名,且指定的域名必须与证书中的域名保持一致。
- 目前支持一个域名可以同时绑定ECC类型的证书和RSA类型的证书。在选择SNI证书时,支持选择同域名绑定的两个证书,使用时ELB会优先选择ECC类型的证书。
证书匹配规则
- 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。
- 证书示例如图1所示,图中的cert-default为创建HTTPS监听器时绑定的默认证书,cert-test01和cert-test02为新创建的用于SNI的证书。
其中,证书cert-test01填写的域名为www.test01.com、cert-test02填写的域名为www.test02.com。
监听器开启SNI
- 进入弹性负载均衡列表页面。
- 在弹性负载均衡列表页面,单击负载均衡名称。
- 在“监听器”页签,单击需要开启SNI的监听器名称。
- 在监听器基本信息页面,单击SNI右侧“配置”。
- 开启SNI的开关,选择需要配置的SNI证书。
图2 配置SNI证书
- 单击“确定”。