单CLB实例配置多域名HTTPS网站

更新时间:
复制 MD 格式

当您需要在同一个监听中将不同域名的HTTPS访问请求转发至不同的后端服务器,您可参考本文进行配置实现多域名HTTPS网站。

场景示例

CLB会根据客户端请求的HTTPS域名去查找对应证书并完成HTTPS认证,然后根据转发规则转发到对应的后端服务器。

本文配置示例如下:

  • 监听默认证书default绑定域名aliyundoc.com,默认后端服务器组选择RS1。

  • 监听扩展证书example1绑定域名www.example.comhttps://www.example.com的客户端请求转发至后端服务器组RS1。

  • 监听扩展证书example2绑定域名www.example.orghttps://www.example.org的客户端请求转发至后端服务器组RS2。

image

前提条件

  • 已创建CLB实例。具体操作,请参见创建和管理CLB实例

  • 已创建虚拟服务器组RS1RS2。具体操作,请参见创建和管理虚拟服务器组

  • 已在服务器组RS1RS2中分别添加ECS01ECS02实例,并在ECS01ECS02中部署了应用服务。

  • 已经注册域名并完成备案。具体操作,请参见注册阿里云域名ICP备案流程

  • 已购买证书或者上传第三方证书到SSL证书服务并绑定域名,请参见使用正式证书为Web站点开启HTTPS访问。本文需要以下证书:

    • 已绑定域名aliyundoc.com的默认证书default。

    • 已绑定域名www.example.com的证书example1。

    • 已绑定域名www.example.org的证书example2。

    说明

    相关证书需要部署到CLB方可使用,可参考创建证书

步骤一:添加HTTPS监听

  1. 登录传统型负载均衡CLB控制台

  2. 在顶部菜单栏,选择CLB实例所属的地域。

  3. 实例管理页面,找到目标CLB实例,然后在操作列单击监听配置向导

  4. 协议&监听页签下,完成以下配置,然后单击下一步

    本文主要配置参数如下,其他参数可根据实际情况进行配置。

    • 选择监听协议:HTTPS

    • 监听端口:443

  5. SSL证书页签,选择已上传的服务器证书,然后单击下一步。本文选择已创建的default证书。

  6. 后端服务器页签,选择虚拟服务器组,在选择服务器组下拉框中选择RS1。

  7. 其他参数保持默认值,单击下一步提交

步骤二:添加扩展域名

  1. 实例管理页面,找到目标CLB实例,然后单击目标实例ID。

  2. 监听页签,找到已创建的HTTPS监听,然后在操作列选择更多操作 > 扩展域名管理

  3. 扩展域名管理面板,单击添加扩展域名,添加扩展域名。

    1. 输入扩展域名www.example.com,并在选择服务器证书下拉框中选择www.example.com域名关联的证书,然后单击确定

    2. 输入扩展域名www.example.org,并在选择服务器证书下拉框中选择www.example.org域名关联的证书,然后单击确定

    说明

    证书中的域名和您添加的扩展域名必须一致。

    重要
    • 扩展域名不支持通配符格式(如 *.example.com)。通配符域名无法通过 SNI 自动匹配,访问子域名时将回退使用监听的默认证书。请使用精确域名(如 www.example.com)作为扩展域名。

    • 添加扩展域名后,还需在步骤三中为该域名配置对应的转发规则,SNI 才能正确匹配并返回对应证书。仅添加扩展域名而不配置转发规则时,SNI 不生效。

    • 若未配置任何扩展域名,所有 HTTPS 请求均使用监听的默认证书,这是预期行为。

    • 当扩展域名关联的服务器证书过期时,CLB 会自动跳过该扩展证书的 SNI 匹配逻辑。即使客户端请求中 SNI 携带的域名与过期扩展证书的域名完全一致,也不会匹配该过期的扩展证书,而是回退使用 HTTPS 监听配置的默认证书进行解密。这可能导致客户端收到默认证书而非预期的扩展域名证书,出现 SSL/TLS 证书不匹配的告警。建议您及时更新即将过期的扩展域名证书,避免因证书过期导致的业务影响。

步骤三:配置转发策略

  1. 实例管理页面,找到目标CLB实例,然后单击目标实例ID。

  2. 监听页签,在监听的操作列单击配置转发策略

  3. 转发策略面板,添加转发策略。

    本文中仅配置域名转发规则,URL不进行设置。

    1. 域名列输入www.example.com,选择虚拟服务器组RS1,单击添加转发策略

    2. 域名列输入www.example.org,选择虚拟服务器组RS2,单击添加转发策略

  4. 完成转发策略的配置后,关闭转发策略面板。

步骤四:配置域名解析

分别为www.example.comwww.example.org添加A记录解析到CLB实例的公网服务地址上。

  1. 登录传统型负载均衡CLB控制台

  2. 在顶部菜单栏选择地域。

  3. 选择要进行域名解析的CLB实例,复制其对应的公网服务地址。

  4. 完成以下步骤来添加A解析记录。

    1. 登录域名解析控制台

    2. 公网权威解析页面单击添加域名

    3. 添加域名对话框中输入您的主机域名,然后单击确认

      重要

      您的主机域名需已完成TXT记录验证。

    4. 在目标域名的操作列单击解析设置

    5. 解析设置页面单击添加记录

    6. 添加记录面板配置以下信息完成A记录解析配置,然后单击确认

      配置

      说明

      记录类型

      在下拉列表中选择A

      主机记录

      您的域名的前缀。

      解析请求来源

      选择默认。

      记录值

      记录值为IP地址,即您复制的CLB实例的公网服务地址。

      TTL

      全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,本文使用默认值。

步骤五:结果验证

在浏览器中分别输入www.example.comwww.example.org均可访问服务,本文在服务器组RS1RS2对应的后端服务器两个实例上搭建了两个静态网页。

  • 在浏览器中输入扩展证书example1绑定域名www.example.com,将根据已配置的转发规则,转发至服务器组RS1对应的后端服务器ECS01。在浏览器中输入 www.example.com,页面返回 Hello World ! This is ECS01.,表明请求已根据转发规则转发至服务器组 RS1 对应的后端服务器 ECS01。

  • 在浏览器中输入扩展证书example2绑定域名www.example.org,将根据已配置的转发规则,转发至服务器组RS2对应的后端服务器ECS02。浏览器通过 HTTPS 访问后返回 Hello World ! This is ECS02.,验证后端服务器 ECS02 的 Web 服务运行正常。

说明

配置完成后测试如果出现问题,请尝试重启浏览器后再测试,避免缓存对结果的影响。

常见问题

扩展域名配置后访问仍显示默认证书,如何排查?

按以下步骤逐项排查:

  1. 确认扩展域名使用的是精确域名(如 www.example.com),而非通配符域名(如 *.example.com)。CLB 不支持通配符扩展域名的 SNI 自动匹配,使用通配符域名时客户端访问将始终回退使用默认证书。

  2. 确认已为该扩展域名配置对应的转发规则(步骤三)。仅添加扩展域名而不配置转发规则时,SNI 不生效,客户端仍返回默认证书。

  3. 确认所绑定证书的域名与扩展域名完全匹配(不含通配符)。

  4. 使用以下命令验证 SNI 是否返回正确证书,命令输出中的 CN= 字段应显示扩展域名对应的证书:

    openssl s_client -connect <CLB公网IP>:443 -servername <扩展域名>
  5. 实例管理页面单击目标CLB实例 ID,进入监听页签找到 HTTPS 监听,在操作列选择 更多操作 > 管理证书,确认当前 HTTPS 监听的默认证书和已配置的扩展域名。若扩展域名管理列表为空,说明未配置任何扩展域名,所有 HTTPS 请求均使用监听的默认证书,需按步骤二为每个域名添加扩展域名并关联独立服务器证书。

  6. 通过 DescribeLoadBalancerHTTPSListenerAttribute API 查询 DomainExtensions 字段,确认扩展域名配置状态。若返回结果中 DomainExtensions.DomainExtension 为空数组,如 "DomainExtension": [],说明未配置任何扩展域名,所有域名请求均使用默认证书。已配置时,核对各条目的 Domain 字段和 ServerCertificateId 字段是否与预期域名和证书一致。

  7. 如果为扩展域名关联的是泛域名证书(证书的绑定域名为 *.example.com 格式),请注意:当同一 HTTPS 监听下有多个使用泛域名证书的扩展域名时,仅首个泛域名证书会被自动用于 SNI 匹配,其余扩展域名需关联独立的精确域名证书,否则将回退使用监听的默认证书。

相关文档