You need to enable JavaScript to run this app.
导航
为 HTTPS 监听器配置多本证书(基础版)
最近更新时间:2025.03.06 20:25:18首次发布时间:2022.05.18 19:58:52
我的收藏
有用
有用
无用
无用

本文介绍如何在 ALB 控制台中为 HTTPS 监听器配置扩展证书。“扩展证书”功能适用于同一台服务器上部署了多个站点且不同站点关联不同证书的场景。

背景信息

SNI 概述

服务器名称指示(Server Name Indication,简称 SNI) 是 TLS 协议的一个扩展。在同一台服务器上部署了多个站点且不同站点关联不同证书的场景下,SNI 解决了以下问题:

  • 在客户端使用 HTTPS 协议与服务器建立连接时,服务器无法知道该发送给客户端哪个站点的证书。

如果客户端使用 HTTP 协议连接服务器,服务器通过客户端请求中的 Host 头部判断客户端需要访问的站点。但是如果客户端使用 HTTPS 协议连接服务器,在数据传输前会有一个 TLS 握手的过程。在该过程中,客户端还未传递 Host 头部给服务器,因此服务器无法判断需要发送给客户端的证书。该情况下,客户端可以使用 SNI 扩展告知服务器需要访问的站点。这样服务器就能在 TLS 握手阶段发送相应的证书给客户端。

ALB 对 SNI 的支持

ALB 支持 SNI。当监听器接收到客户端发送的包含 SNI 扩展的消息时,监听器可以将目标域名对应的证书发送给客户端。但是,为了实现上述功能,您首先需要在监听器上配置目标域名的证书,即配置“扩展证书”。一个 HTTPS 监听器最多可以配置 20 个扩展证书。

扩展证书匹配

ALB 按照您配置的域名、转发规则和证书的对应关系来选择证书。详细流程,请参见证书匹配

前提条件

您已经创建了一个 HTTPS 监听器。

注意事项

为基础版 ALB 实例配置扩展证书时,您需要同时指定该证书所关联的域名。
此外,您还需要在监听器中配置针对该域名的转发规则。这样,相应的证书配置才会下发生效。例如,如果您配置了 example.com 的扩展证书,还需配置一条针对 example.com 的转发规则。转发规则中配置的域名必须与扩展证书关联的域名完全相同。

操作步骤

  1. 登录应用型负载均衡控制台
  2. 实例管理 页面,找到需要配置的 ALB 实例,单击 操作 列的 配置监听器
  3. 监听器 页签,找到需要配置扩展证书的 HTTPS 监听器,单击 操作 列的 更多 图标,然后选择 扩展证书
    Image
  4. 扩展证书 页面,单击右上角的 编辑
  5. 编辑扩展证书 页面,单击 扩展证书 右侧的添加证书
    1. 选择证书来源。基础版 ALB 实例使用的证书可以是 ALB 侧已有证书或者证书中心的证书。关于证书来源的更多说明,请参见下文的证书来源
    2. 选择证书。您需要输入域名,然后选择域名所关联的证书。如果您输入泛域名,选择的证书也须是关联该泛域名的证书。
      输入域名时,请您关注以下限制:
      • 域名只能包含小写字母、数字和特殊字符.-*。
      • 域名须至少包含一个半角句号(.),但不能以半角句号(.)作为开头和结尾。
      • 同一监听器下配置的域名不能重复。
        您可以继续单击添加证书来添加更多证书。但是须注意,您输入的证书关联的域名不能重复。
  6. 添加证书后,单击 确定

相关信息

证书来源

基础版 ALB 实例支持以下来源的证书:

  • ALB 侧的证书。
  • 证书中心的证书。

使用 ALB 侧的证书,您需要:

  • 将您的证书上传到 ALB 控制台。ALB 仅允许上传 PEM 格式的证书。其他格式的证书需要转换成 PEM 格式后才可以上传。相关操作,请参考添加/删除证书转换证书格式

使用证书中心的证书,您需要:

  • 在证书中心购买证书或者将您的证书上传到证书中心。

使用证书中心证书的详细说明,请参考ALB 使用证书中心的证书
推荐您使用证书中心的证书。在证书中心控制台,您可以一站式进行证书的购买、上传、管理等操作。

证书匹配

相关概念

在了解证书匹配流程前,请先了解以下概念:

  • 精确域名
    精确域名是指符合域名规范的具体域名。该域名是唯一的,用于准确地定位到特定的网站或服务器资源。例如, www.example.com 是一个精确域名。该域名不包含任何通配符,指向一个特定的网站。
  • 泛域名
    泛域名是指使用通配符(*)来代表一个或多个字符的域名。一个泛域名可以匹配多个域名。但是,一个泛域名只能匹配与其处于相同级别的域名,不能匹配比其级别更高或更低的域名。
    例如,泛域名 *.example.com 可以匹配与其处于相同级别的域名如 mail.example.com、blog.example.com、product1.example.com,但是无法匹配与其处于不同级别的域名如 example.com 和 a.mail.example.com。
  • 精确匹配
    精确匹配是指请求中的域名与证书关联的精确域名完全匹配。例如,请求的域名是 www.example.com,证书关联的精确域名中包含 www.example.com,则精确匹配成功。
  • 泛域名匹配
    泛域名匹配是指请求中的域名与证书关联的泛域名匹配。例如,请求的域名是 www.example.com,证书关联的域名中包含“*.example.com”,则泛域名匹配成功。
  • 默认证书
    在您配置扩展证书时,编辑扩展证书 页面上会展示一个默认证书。该证书默认为您在创建监听器时选择的证书。当客户端请求的域名无法匹配到任一扩展证书时,监听器将默认证书返回给客户端。

证书匹配流程

对于基础版 ALB 实例,您需要在配置扩展证书时手动指定证书关联的域名以及在转发规则中配置这些域名。这些操作相当于配置了域名、转发规则和证书之间的关联。
在接收到一个客户端请求时,监听器会按照以下流程进行证书匹配并发送证书给客户端:

  • 判断请求的域名是否能够匹配到转发规则。
    • 如果请求的域名能够匹配到转发规则,监听器继续判断该转发规则是否关联了证书:
      • 如果转发规则关联了证书,监听器将转发规则关联的证书发送给客户端。
      • 如果转发规则没有关联证书,监听器将默认证书发送给客户端。
    • 如果请求的域名未能匹配到转发规则,监听器将默认证书发送给客户端。

说明

在进行转发规则匹配时,系统支持精确匹配和泛域名匹配。如果请求中的域名同时匹配到一个精确域名的转发规则和一个泛域名的转发规则,则监听器会选择精确域名的转发规则,并将该转发规则关联的证书发送给客户端。

证书匹配示例

假设您在一个监听器下配置了 2 本扩展证书:cert-1 和 cert-2。您为 cert-1 证书关联的域名为 *.example.com,为 cert-2 关联的域名为 www.example.com。您在转发规则 rule-1 中配置了 *.example.com,在转发规则 rule-2 中配置了 www.example.com。

请求的域名

匹配到的转发规则

监听器动作

www.example.com

rule-2

将 cert-2 返回给客户端

a.example.com

rule-1

将 cert-1 返回给客户端

a.b.example.com

将默认证书返回给客户端

example.com

将默认证书返回给客户端

后续操作

创建转发规则。转发规则中须包含您在配置扩展证书时指定的域名。相关操作,请参考创建转发规则(基础版)