隐藏在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检查策略名称。
关联TLS证书
选择一个已经创建的证书。
说明首次创建策略时,证书选择下拉框中将显示申请试用证书选项。单击该选项可自动创建测试证书,用于快速体验 TLS 检查功能。试用证书仅可使用一次;在生产环境中,请购买并启用自有证书。
当前仅支持 PCA 证书,且须满足以下要求:
证书用途必须选择“企业对内使用”;
不支持国密算法证书;
若使用 RSA 私钥算法,密钥长度不得小于 2048 位;
ECC私钥算法请选择256。
若无可选证书,可单击购买证书跳转至证书管理控制台进行操作。购买时仍需确保 PCA 证书用途设置为“企业对内使用”。有关 PCA 证书的详细信息,请见什么是PCA证书。
证书有效期
选择证书后,系统将显示其有效期。当有效期不足一年时,系统将强制提醒。建议定期检查证书,确保其剩余有效期不少于一年。
描述
输入策略的描述。
填写所有配置项后单击下一步可进入配置检查范围步骤,注意此步骤完成后策略已经创建并保存。
配置检查范围。
重要所有检查范围规格上限数为20000。
单条TLS检查策略占用规格数:该条策略中所有检查范围所占规格之和。
单条检查范围占用规格数 = 源IP个数 * 源端口段个数 * 目的IP个数 * 目的端口段个数。
配置项
说明
协议类型
当前仅支持
TCP协议。源IP
请选择需检查的出向流量目标主机 IP 地址,支持多选,最多可选择 1000 个。
说明支持的资产类型:
ECS EIP、ECS 公网IP、NAT EIP、EIP、ENI 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地址对象用英文逗号隔开, 最多可以支持100个IP对象。
如需表示所有地址,请使用
0.0.0.0/0。
目的端口
源IP资产访问目的服务的端口,格式为
开始端口/结束端口,端口取值范围0-65535。多个端口范围之间用英文逗号分割,最多支持100个范围对象。描述
填写检查范围的描述。
其他操作
保存:单击加密流量检查范围折叠框下方的保存按钮,可直接保存检查范围,不需要点击下一步。保存成功后,折叠框右上方会提示已保存。
增加:单击增加一组检查范围,可新增检查范围,一条策略中最多增加10组检查范围。
删除:单击加密流量检查范围折叠框右上角的
,确认后可删除当前检查范围。删除与保存相同,确认后直接删除,不需要点击下一步,请谨慎操作数据。
填写所有配置项后单击下一步完成策略配置。
检查策略信息。
策略配置完成后会显示配置的策略和检查范围的详细信息。信息中展示的策略ID会展示在日志中。
步骤二:TLS证书安装
创建TLS检查策略后需要将关联的证书安装到对应检查的资产主机上。
如果检查资产为NAT EIP类型,则所有通过该公网NAT网关访问互联网的所有云服务器ECS都需要安装证书,否则可能会造成流量中断。
下载证书。

在TLS检查策略配置列表中,找到创建好的策略,在右侧操作列中单击证书下载,将证书下载到本地并解压得到证书文件(
.crt后缀)。登录选择的源IP主机。
登录创建加密流量检查范围时选择的源IP主机。并将证书上传至主机任意目录。以ECS实例为例,文件上传操作,请参见选择传输文件的方式。
安装证书。
切换到证书上传的目录,将证书拷贝到对应系统的信任目录,并执行更新命令,不同操作系统步骤如下:
说明如果TLS策略中关联了子CA证书,需要根CA和子CA同时安装。
以下示例只是针对信任目录为系统信任目录的场景,如果业务的证书信任目录是其他的场景,需要根据实际情况安装到信任库中。
CentOS/Alibaba Cloud Linux/Anolis/Redhat
拷贝证书文件:
cp <证书文件名> /etc/pki/ca-trust/source/anchors/更新证书:
sudo update-ca-trust查看更新后的证书:
cat /etc/ssl/certs/ca-bundle.crt出现证书内容即代表证书安装成功。

Ubuntu
拷贝证书文件:
cp <证书文件名> /usr/local/share/ca-certificates/更新证书:
sudo update-ca-certificates查看更新后的证书:
cat /etc/ssl/certs/ca-certificates.crt出现证书内容即代表证书安装成功。

Windows
重要对于引用的是子CA(中间CA)的场景,Windows原生的证书管理器安装的时候,不会将一个文件中包含多个CA证书链的内容一次性安装,只会安装第一个CA内容。对于此种场景,需要手动将每个CA内容(-----BEGIN CERTIFICATE----- 块)拆分成多个文件,然后逐个安装。
拆分证书,将下载解压后的证书文件使用文本编辑器打开,将证书中的
-----BEGIN CERTIFICATE-----~-----END CERTIFICATE-----块内容,剪切到新建文件中,并将文件更名为.crt结尾即可。
拆分后:

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



完成上述步骤后点击下一步完成证书导入。
查看已导入的证书:cmd命令行中输入
certmgr.msc打开证书管理器。
SUSE
拷贝证书文件:
cp <证书文件名> /etc/pki/trust/anchors更新证书:
sudo c_rehash .查看更新后的证书:
sudo trust list --filter=ca-anchors |grep -C 2 <证书CN>出现证书信息即代表证书安装成功。

Fedora /Fedora CoreOS
拷贝证书文件:
sudo cp <证书文件名> /etc/pki/ca-trust/source/anchors/更新证书:
sudo update-ca-trust extract查看更新后的证书:
sudo trust list --filter=ca-anchors |grep -C 2 <证书CN>出现证书信息即代表证书安装成功。

容器服务 Kubernetes 版 ACK
当出向流量源自阿里云 ACK 集群中的 Pod 时,由于容器运行环境与宿主机隔离,须在 Pod 内安装 PCA 证书。若节点自身也发起 HTTPS 请求(例如拉取公网镜像),则还需在节点上安装该证书。
说明以下步骤适用于 Alibaba Cloud Linux 3.2104 LTS 64 位容器优化版操作系统,仅供参考。您应根据实际使用的操作系统及业务需求,相应调整相关命令。
以下部分命令涉及对资源进行重启操作,为避免对业务造成影响,建议在业务低峰期进行。
为节点安装证书
登录至每个节点,执行如下命令。
拷贝证书文件:
cp <证书文件名> /etc/pki/ca-trust/source/anchors/更新证书:
sudo update-ca-trust查看更新后的证书:
cat /etc/ssl/certs/ca-bundle.crt出现证书内容即代表证书安装成功。
重启容器服务使其生效:
sudo systemctl restart containerd。
为容器组Pod安装证书
在目标集群控制台创建保密字典Secret,示例配置如下。其中密钥值为证书文件的内容。具体创建操作,请参见管理保密字典。
也可以通过如下kubectl命令创建Secret,实现相同效果,需要将命令中的ca_chain.crt替换为实际的证书文件名。kubectl create secret generic cfw-pca-cert \ --from-file=ca_chain.crt=./ca_chain.crt \ -n default以Deployment为例,在其YAML文件中添加如下内容:
定位至
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继续在
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更新了系统证书,浏览器仍可能提示证书不受信任。此种情况可参照以下步骤将证书导入至浏览器的信任数据库中。
Linux和Windows中这类浏览器的证书导入操作没有差别。
1 | 2 |
|
|
步骤三:开启检查和查询流量日志
对应资产主机证书安装完成后,即可开启策略检查。
重要开启TLS检查时,新建连接约1分钟后开始生效保护,存量长连接不会生效且不会保护。
对已开启保护且开启TLS检查的EIP,当关闭TLS检查时,长连接会中断,中断时间取决于业务重连时长。

在TLS检查功能页可以查看已经创建成功的策略列表,单击启用状态开关即可启用TLS检查策略。开启后云防火墙可根据配置检测出向流量的加密内容。
说明策略只有未启用状态才能删除。
查询流量日志。
检查主机产生流量后,在云防火墙控制台左侧导航栏,选择。
在可查询到对应主机产生的流量,其中包含了命中的TLS检查策略和范围。
日志中会显示策略和检查范围的ID。








也可以通过如下kubectl命令创建Secret,实现相同效果,需要将命令中的


