【公测】TLS检查

更新时间:
复制为 MD 格式

隐藏在HTTPS等加密流量中的高级攻击因无法解密难以被检测,云防火墙的TLS检查功能可防护出向加密流量,通过私有根CA替换TLS证书,实现解密流量获得IPS防护能力和私有证书加密安全通讯的双重需求。

说明

TLS检查功能当前为公测阶段,不代表最终上线形态,如有问题和建议请通过商务经理与我们联系。

为什么需要TLS检查

HTTPS等加密协议已经成为互联网中常用的通讯协议,但因其请求载荷均为密文,云防火墙IPS引擎无法知晓其内容,也就无法分析流量进行防护。

TLS检查可配置检查策略,防护指定出向流量,通过指定的私有证书,在客户端和云防火墙之间替换其原有的TLS证书。

云防火墙获得服务端证书后可解密流量,使得IPS引擎得以检测和防护高级攻击和敏感数据泄露等风险。

适用范围

  • 版本限制:不支持使用旧版按量付费1.0计费方式的云防火墙。

  • 地域限制:仅支持以下地域:华北2(北京)、华东2(上海)、华东1(杭州)、华北3(张家口)。 

  • TLS 协议版本限制: 

    • 仅支持 TLS 1.0、1.1 和 1.2。 

    • TLS 1.3 若未启用 ECH(Encrypted Client Hello),可正常转发流量,但不支持解密与防护。 

    • 早期 SSL 版本及启用 ECH 的 TLS 1.3 不支持 TLS 检查,会导致流量中断。

  • 协议类型限制:非 TCP 请求(如基于 UDP 的 QUIC 协议)仅支持转发,不支持 TLS 检查。 

  • 网络诊断影响:启用 TLS 检查后,TCP MTR(My Traceroute)无法正常探测至源站的链路路径。 

  • 认证模式限制:不支持双向 TLS(Mutual TLS Authentication,mTLS),仅支持单向 TLS(客户端验证服务端证书)。 

  • SNI 要求:TLS SNI(Server Name Indication)必须与所配置证书中的域名匹配,方可启用 TLS 检查。

操作步骤

登录云防火墙控制台在左侧导航栏,选择防护配置 > TLS检查,进入TLS检查功能页面。

步骤一:TLS检测策略配置

TLS检查功能页列表上方单击创建TLS检查策略按钮,右侧弹出创建TLS检查策略抽屉窗口。

  1. 关联证书

    配置项

    说明

    策略名称

    填写便于识别的TLS检查策略名称。

    关联TLS证书

    选择一个已经创建的证书。

    说明

    首次创建策略时,证书选择下拉框中将显示申请试用证书选项。单击该选项可自动创建测试证书,用于快速体验 TLS 检查功能。试用证书仅可使用一次;在生产环境中,请购买并启用自有证书。

    当前仅支持 PCA 证书,且须满足以下要求: 

    • 证书用途必须选择“企业对内使用”; 

    • 不支持国密算法证书; 

    • 若使用 RSA 私钥算法,密钥长度不得小于 2048 位; 

    • ECC私钥算法请选择256。

    若无可选证书,可单击购买证书跳转至证书管理控制台进行操作。购买时仍需确保 PCA 证书用途设置为“企业对内使用”。有关 PCA 证书的详细信息,请见什么是PCA证书

    证书有效期

    选择证书后,系统将显示其有效期。当有效期不足一年时,系统将强制提醒。建议定期检查证书,确保其剩余有效期不少于一年。

    描述

    输入策略的描述。

    填写所有配置项后单击下一步可进入配置检查范围步骤,注意此步骤完成后策略已经创建并保存。

  2. 配置检查范围

    重要
    • 所有检查范围规格上限数为20000。

    • 单条TLS检查策略占用规格数:该条策略中所有检查范围所占规格之和。

    • 单条检查范围占用规格数 = 源IP个数 * 源端口段个数 * 目的IP个数 * 目的端口段个数。

    配置项

    说明

    协议类型

    当前仅支持TCP协议。

    IP

    请选择需检查的出向流量目标主机 IP 地址,支持多选,最多可选择 1000 个。

    说明

    支持的资产类型:ECS EIPECS 公网IPNAT EIPEIPENI EIP

    源端口

    选中资产的检查端口,格式为开始端口/结束端口,端口取值0-65535,多个端口范围之间用英文逗号分割,最多支持100个范围对象。

    说明
    • 所有端口均以范围形式表示,即使只有一个端口。比如:8080/8080,表示仅检查8080端口。

    • 检查所有端口请使用0/65535

    目的IP

    IP资产访问目的服务的IP。

    说明
    • 需使用标准掩码格式的IPv4地址或地址段,如:192.0.2.0/24,8.8.8.8/32

    • 可输入多个IP地址段,每个IP地址对象用英文逗号隔开, 最多可以支持100IP对象。

    • 如需表示所有地址,请使用0.0.0.0/0

    目的端口

    IP资产访问目的服务的端口,格式为开始端口/结束端口,端口取值范围0-65535。多个端口范围之间用英文逗号分割,最多支持100个范围对象。

    描述

    填写检查范围的描述。

    其他操作

    • 保存:单击加密流量检查范围折叠框下方的保存按钮,可直接保存检查范围,不需要点击下一步。保存成功后,折叠框右上方会提示已保存

    • 增加:单击增加一组检查范围,可新增检查范围,一条策略中最多增加10组检查范围。

    • 删除:单击加密流量检查范围折叠框右上角的image,确认后可删除当前检查范围。删除与保存相同,确认后直接删除,不需要点击下一步,请谨慎操作数据。

    填写所有配置项后单击下一步完成策略配置。

  3. 检查策略信息。

    策略配置完成后会显示配置的策略和检查范围的详细信息。信息中展示的策略ID会展示在日志中。

步骤二:TLS证书安装

创建TLS检查策略后需要将关联的证书安装到对应检查的资产主机上。

重要

如果检查资产为NAT EIP类型,则所有通过该公网NAT网关访问互联网的所有云服务器ECS都需要安装证书,否则可能会造成流量中断。

  1. 下载证书。

    image

    TLS检查策略配置列表中,找到创建好的策略,在右侧操作列中单击证书下载,将证书下载到本地并解压得到证书文件(.crt后缀)。

  2. 登录选择的源IP主机。

    登录创建加密流量检查范围时选择的IP主机。并将证书上传至主机任意目录。以ECS实例为例,文件上传操作,请参见选择传输文件的方式

  3. 安装证书。

    切换到证书上传的目录,将证书拷贝到对应系统的信任目录,并执行更新命令,不同操作系统步骤如下:

    说明
    • 如果TLS策略中关联了子CA证书,需要根CA和子CA同时安装。

    • 以下示例只是针对信任目录为系统信任目录的场景,如果业务的证书信任目录是其他的场景,需要根据实际情况安装到信任库中。

    CentOS/Alibaba Cloud Linux/Anolis/Redhat

    1. 拷贝证书文件:cp <证书文件名> /etc/pki/ca-trust/source/anchors/

    2. 更新证书:sudo update-ca-trust

    3. 查看更新后的证书:cat /etc/ssl/certs/ca-bundle.crt

      出现证书内容即代表证书安装成功。

      image

    Ubuntu

    1. 拷贝证书文件:cp <证书文件名> /usr/local/share/ca-certificates/

    2. 更新证书:sudo update-ca-certificates

    3. 查看更新后的证书:cat /etc/ssl/certs/ca-certificates.crt

      出现证书内容即代表证书安装成功。

      image

    Windows

    重要
    • 对于引用的是子CA(中间CA)的场景,Windows原生的证书管理器安装的时候,不会将一个文件中包含多个CA证书链的内容一次性安装,只会安装第一个CA内容。对于此种场景,需要手动将每个CA内容(-----BEGIN CERTIFICATE----- 块)拆分成多个文件,然后逐个安装。

    • 拆分证书,将下载解压后的证书文件使用文本编辑器打开,将证书中的-----BEGIN CERTIFICATE-----~-----END CERTIFICATE-----块内容,剪切到新建文件中,并将文件更名为.crt结尾即可。

      image

      拆分后:image

    1. 安装证书:右键单击证书文件,在弹出菜单中单击安装证书,按下列步骤安装:

      1

      2

      3

      image

      image

      image

      完成上述步骤后点击下一步完成证书导入。

    2. 查看已导入的证书:cmd命令行中输入certmgr.msc打开证书管理器。

      image

    SUSE

    1. 拷贝证书文件:cp <证书文件名> /etc/pki/trust/anchors

    2. 更新证书:sudo c_rehash .

    3. 查看更新后的证书:sudo trust list --filter=ca-anchors |grep -C 2 <证书CN>

      出现证书信息即代表证书安装成功。

      image

    Fedora /Fedora CoreOS

    1. 拷贝证书文件:sudo cp <证书文件名> /etc/pki/ca-trust/source/anchors/

    2. 更新证书:sudo update-ca-trust extract

    3. 查看更新后的证书:sudo trust list --filter=ca-anchors |grep -C 2 <证书CN>

      出现证书信息即代表证书安装成功。

      image

    容器服务 Kubernetes 版 ACK

    当出向流量源自阿里云 ACK 集群中的 Pod 时,由于容器运行环境与宿主机隔离,须在 Pod 内安装 PCA 证书。若节点自身也发起 HTTPS 请求(例如拉取公网镜像),则还需在节点上安装该证书。

    说明
    • 以下步骤适用于 Alibaba Cloud Linux 3.2104 LTS 64 位容器优化版操作系统,仅供参考。您应根据实际使用的操作系统及业务需求,相应调整相关命令。

    • 以下部分命令涉及对资源进行重启操作,为避免对业务造成影响,建议在业务低峰期进行。

    为节点安装证书

    登录至每个节点,执行如下命令。

    1. 拷贝证书文件:cp <证书文件名> /etc/pki/ca-trust/source/anchors/

    2. 更新证书:sudo update-ca-trust

    3. 查看更新后的证书:cat /etc/ssl/certs/ca-bundle.crt

      出现证书内容即代表证书安装成功。

    4. 重启容器服务使其生效:sudo systemctl restart containerd

    为容器组Pod安装证书

    1. 在目标集群控制台创建保密字典Secret,示例配置如下。其中密钥值为证书文件的内容。具体创建操作,请参见管理保密字典image也可以通过如下kubectl命令创建Secret,实现相同效果,需要将命令中的ca_chain.crt替换为实际的证书文件名。

      kubectl create secret generic cfw-pca-cert \
        --from-file=ca_chain.crt=./ca_chain.crt \
        -n default
    2. Deployment为例,在其YAML文件中添加如下内容:

      1. 定位至spec.template.spec.containers字段,添加以下内容以挂载证书并更新信任库,其中secretName为上一步创建的 Secret:cfw-pca-cert

        volumes:
                - name: custom-ca-volume
                  secret:
                    secretName: cfw-pca-cert   
        volumeMounts:
                - name: custom-ca-volume
                  mountPath: /etc/ssl/custom
                  readOnly: true  
      2. 继续在spec.template.spec.containers字段下,添加启动命令。

        说明

        以下示例基于 CentOS 容器系统,仅供参考。请根据实际使用的操作系统及业务需求,相应调整相关命令。

        command:
                  - "/bin/sh"
                  - "-c"
                  - |
                    # 1. 安装 curl
                    echo "Installing curl......"
                    yum install -y curl
        
                    # 2. 验证证书挂载,此处的ca_chain.crt需替换为实际证书文件名
                    if [ ! -f /etc/ssl/custom/ca_chain.crt ]; then
                      echo "ERROR: Certificate file not found!"
                      exit 1
                    fi
        
                    # 3. 按 CentOS 步骤注入证书
                    echo "Copying certificate to anchors directory..."
                    cp /etc/ssl/custom/ca_chain.crt /etc/pki/ca-trust/source/anchors/
        
                    echo "Updating CA trust store..."
                    update-ca-trust        
        
                    # 4. 保持 Pod 运行
                    echo "Pod ready for manual testing. Use 'kubectl exec' to test further."
                    sleep infinity

浏览器信任数据库

某些浏览器(例如Firefox)不使用系统的 CA 信任库,而是维护自己的证书信任数据库,即使通过update-ca-certificates更新了系统证书,浏览器仍可能提示证书不受信任。此种情况可参照以下步骤将证书导入至浏览器的信任数据库中。

说明

LinuxWindows中这类浏览器的证书导入操作没有差别。

1

2

image

image

步骤三:开启检查和查询流量日志

  1. 对应资产主机证书安装完成后,即可开启策略检查。

    重要

    开启TLS检查时,新建连接约1分钟后开始生效保护,存量长连接不会生效且不会保护。

    对已开启保护且开启TLS检查的EIP,当关闭TLS检查时,长连接会中断,中断时间取决于业务重连时长。

    image

    TLS检查功能页可以查看已经创建成功的策略列表,单击启用状态开关即可启用TLS检查策略。开启后云防火墙可根据配置检测出向流量的加密内容。

    说明

    策略只有未启用状态才能删除。

  2. 查询流量日志。

    检查主机产生流量后,在云防火墙控制台左侧导航栏,选择检测响应 > 日志审计

    流量日志 > 互联网边界防火墙页签可查询到对应主机产生的流量,其中包含了命中的TLS检查策略和范围。

    日志中会显示策略和检查范围的ID。

    image