certificate-inspection
certificate-inspection
注意
当希望兼顾安全与兼容性/性能,且主要关注证书异常与基础风险控制时。大部分情况下推荐此配置(防火墙策略中的默认配置),而不是 deep-inspection。
功能简介
FortiGate 支持 SSL/TLS 证书检查(certificate-inspection)。与 deep-inspection 相比,certificate-inspection 模式仅检查至 SSL/TLS 证书层级的报文头信息,不会解密或检查加密后的实际内容。
该模式主要适用于以下场景:
- 不希望对 HTTPS 流量进行深度解密(出于隐私或合规考虑)。
- 仍需要基于证书信息对网站访问进行控制。
- 结合 Web Filter、认证、告警等安全策略使用。
- 若需要内容级安全检测,应使用深度检查模式(参考:UTM → SSL/SSH 检查 → certificate-inspection 章节)。
FortiGate 默认提供预置的 certificate-inspection 配置文件,可直接使用(但无法修改配置),也可以克隆或新建 SSL/SSH 配置文件。
工作模式
在应用 certificate-inspection 的防火墙策略中:
config firewall policy
edit 1
set name "to_Internet1"
set srcintf "lan"
set dstintf "wan1"
set action accept
set srcaddr "all"
set dstaddr "all"
set schedule "always"
set service "ALL"
set utm-status enable
set ssl-ssh-profile "certificate-inspection"
set webfilter-profile "default"
set nat enable
next
end- FortiGate 会解析 HTTPS 连接的 SSL/TLS 证书信息。
- 根据证书信息触发 Web Filter、认证或阻断动作。
- 不解密 HTTPS 会话内容。
- 当访问被拦截或触发替换页面时,返回的 HTTPS 页面由 FortiGate 生成,并使用 FortiGate CA 证书进行签名。
替换页面与证书提示
在以下情况下,用户访问 HTTPS 网站时可能会看到替换页面:

- 网站被 Web Filter 分类阻断。
- Web Filter 分类触发告警页面。
- 访问需要用户认证的页面。
- 其他策略触发的 HTTPS 拦截行为。
替换页面默认使用 FortiGate CA 证书签名(也可以替换成导入的自定义 CA 证书),因此:

- 若客户端未信任该 CA,会提示证书不受信任(仅针对 FortiGate 替换页面,不会影响真实业务访问的目标网站)。
- 属于正常现象,不代表配置错误。
客户端证书信任配置
为避免客户端出现 HTTPS 证书警告,需要在终端设备上安装 FortiGate 使用的 CA 证书并信任。获取 CA 证书步骤如下:

进入安全配置文件 → SSL/SSH 检测。
编辑当前防火墙策略所使用的 SSL/SSH 检测配置文件,如上所示为系统预置的 certificate-inspection 配置文件。
在 CA 证书右侧点击“下载”按钮。
提示
- 内置的 certificate-inspection 配置文件默认使用的 CA 为 Fortinet_CA_SSL,无法修改。
- 可在设备证书库中导入自定义 CA 证书(参考:系统管理 → 系统设置 → 证书管理章节,必须导入带私钥的 CA 证书或 SubCA 证书,不能使用用户证书),并克隆或新建 SSL/SSH 检测配置文件调用自定义 CA 证书。
- 导入的自定义 CA 证书位于“本地证书”分类中。
将下载的 CA 证书加入客户端系统或者浏览器的信任列表。
重要
Chrome/Edge 依赖系统的证书信任列表。
而 Firefox 有自己的信任列表,需要在浏览器设置中添加,或在浏览器的证书设置中开启“允许 Firefox 自动信任您安装的第三方证书”,开启后 Firefox 也会信任系统的证书信任列表。

Windows双击下载的 CA 证书,点击“安装证书 (I)...”。

存储位置选择“本地计算机 (L)”,然后点击下一步。

选择“将所有的证书都放入下列存储 (P)”,点击“浏览 (R)...”按钮,选择“受信任的根证书颁发机构”。

完成证书导入。

macOS双击下载的 CA 证书,会打开“钥匙串访问”应用。
进入“系统 → 证书”页面,可以看到刚刚导入的 CA 证书,然后双击该证书。

在“使用此证书时”选项中选择“始终信任”,关闭窗口(会提示输入系统密码)。

客户端再次访问该网站时,会直接显示出 FortiGate 的阻断页面(或登录页面),不会弹出证书告警页面。

自定义 certificate-inspection 配置文件
默认的 certificate-inspection 配置文件为只读,无法修改任何配置(仅监听 TCP 443 端口,使用出厂自带的 Fortinet_CA_SSL 作为 CA 证书等),当有如下配置需求(包含但不限),必须新建或克隆一个证书检查配置文件。
- 需要检查非标准 HTTPS 端口(例如 8443)。
- 需要使用自定义的 CA 证书。
- 需要自定义网站证书无效时的动作。
- 其他自定义参数,如针对无效 SSL 证书配置处理方式,例如允许、阻断、根据不同证书错误类型设置不同动作等,请参考:UTM → SSL/SSH 检查 → SSL/SSH 检测配置文件章节。
进入安全配置文件 → SSL/SSH 检测,新建或克隆 certificate-inspection 配置文件。

在“协议端口映射”中配置 HTTPS 端口,如 443、8443,在“SSL 检测选项”中配置自定义的 CA 证书,根据需要配置其他选项。
提示
- 内置的 certificate-inspection 配置文件默认使用的 CA 为 Fortinet_CA_SSL,无法修改。
- 可在设备证书库中导入自定义 CA 证书(参考:系统管理 → 系统设置 → 证书管理章节,必须导入带私钥的 CA 证书或 SubCA 证书,不能使用用户证书),并克隆或新建 SSL/SSH 检测配置文件调用自定义 CA 证书。
- 导入的自定义 CA 证书位于“本地证书”分类中。

config firewall ssl-ssh-profile edit "test-certificate-inspection" config https set ports 443 8443 set status certificate-inspection set quic bypass set encrypted-client-hello allow end config ftps set status disable end config imaps set status disable end config pop3s set status disable end config smtps set status disable end config ssh set ports 22 set status disable end config dot set status disable set quic inspect end set caname "testca_bing" next end保存配置,并在防火墙策略中调用该 SSL/SSH 检测配置文件。
config firewall policy edit 1 set name "to_Internet1" set srcintf "lan" set dstintf "wan1" set action accept set srcaddr "all" set dstaddr "all" set schedule "always" set service "ALL" set utm-status enable set ssl-ssh-profile "test-certificate-inspection" set webfilter-profile "default" set nat enable next end随后客户端访问 HTTPS 443 或 8443 端口的网站时,FortiGate 的阻断页面证书会被替换成自定义 CA 证书。

其他选项
不支持 SSL 版本的处理策略
当客户端或服务器尝试使用 FortiGate 无法识别的 SSL/TLS 版本协商时的动作,默认为 block。
config firewall ssl-ssh-profile
edit <name>
config {ssl | https | ftps | imaps | pop3s | smtps | dot}
set unsupported-ssl-version {allow | block}
end
next
end检测所有端口

为优化系统资源,FortiGate 支持针对特定协议启用或禁用协议端口映射。每种协议都有默认的 TCP 端口,管理员可以根据实际需要修改端口配置,以便对非标准端口上的加密流量进行检测。FortiGate 会根据数据包头部信息识别协议类型。支持的协议包括:
- HTTPS
- SMTPS
- POP3S
- IMAPS
- FTPS
- DNS over TLS(DoT)
“检测所有端口”的实际效果,取决于防火墙检测模式(flow/proxy)和 SSL 检查深度(certificate-inspection/deep-inspection)的配置。
相关信息
- 防火墙策略的检测模式介绍可参考:故障排查 → 数据包处理流程 → 安全检测模式章节。
- 在 Flow-based + deep-inspection 检测模式下,FortiGate 会对所有端口进行检测,而不受端口映射配置影响。
| 策略检测模式/证书检测模式 | 检测所有端口状态 | 行为 |
|---|---|---|
| Proxy + deep-inspection | 禁用 | 仅扫描“协议端口映射”中指定端口 |
| Proxy + deep-inspection | 启用 | 扫描所有端口 |
| Flow + deep-inspection | 启用/禁用 | 扫描所有端口 |
| certificate-inspection | 禁用 | 仅扫描“协议端口映射”中指定端口(Flow/Proxy 一致) |
| certificate-inspection | 启用 | 扫描所有端口(Flow/Proxy 一致) |