标签: FortiGuard

  • FortiGate 无法连接 FortiGuard:2026 年 9 月 CRL Scope 错误解决方法

    今天登录飞塔防火墙遇到一个比较奇怪的 FortiGate 故障:管理界面突然提示:

    无法连接到 FortiGuard 服务器

    刚开始我以为是普通的网络或者 DNS 问题,因此按照常规思路进行了排查。

    甚至连续重启了 3 次设备,但问题依然存在。

    之后又检查了 Internet 连通性、Ping 公网 IP、Ping FortiGuard 服务器,并且更换了 DNS,但还是没有解决。

    最后在继续排查的过程中,我查到了 Fortinet 官方社区发布的 Technical Tip,才发现这是 2026 年 9 月 FortiGuard Anycast 的 CRL Scope 问题

    最终通过 Fortinet 官方给出的方式重新初始化 FortiGuard Anycast,问题恢复。

    本文记录整个排查和解决过程,希望能够帮助遇到相同问题的 FortiGate 用户。

    1. 故障现象

    FortiGate 管理界面出现:

    Unable to connect to FortiGuard servers
    

    中文界面则类似:

    无法连接到 FortiGuard 服务器
    

    同时 FortiGuard 相关服务出现异常,安全数据库也无法正常更新。

    这类问题第一反应通常是:

    • Internet 是否断了?
    • DNS 是否异常?
    • 默认路由是否有问题?
    • FortiGuard 服务器是不是故障了?
    • 上游防火墙是不是拦截了 FortiGuard?
    • FortiGate 是否需要重启?

    因此我也是按照这个思路开始排查。


    2. 第一步:重启设备

    最简单的方法当然是重启。

    但是这次比较尴尬的是:

    重启一次没有解决。

    于是又重启了一次。

    还是没有解决。

    最后甚至连续重启了 3 次,问题依然存在。

    这时候基本可以确定:

    这不像是简单的 FortiGate 临时状态异常。

    如果只是某个进程或者临时连接状态卡住,正常情况下重启应该有一定概率恢复。

    但连续重启仍然无法解决,说明需要进一步从网络和 FortiGuard 服务本身进行排查。


    3. 检查 Internet 是否正常

    首先通过 FortiGate CLI 测试公网 IP:

    execute ping 8.8.8.8
    

    可以正常收到响应。

    例如:

    4 packets transmitted, 4 packets received, 0% packet loss
    

    这说明:

    • WAN 正常
    • 默认路由正常
    • FortiGate 可以访问 Internet

    因此可以基本排除:

    FortiGate 完全无法访问 Internet。


    4. 检查 FortiGuard 服务器

    接下来测试 FortiGuard 相关域名:

    execute ping service.fortiguard.net
    

    然后:

    execute ping update.fortiguard.net
    

    以及:

    execute ping guard.fortinet.net
    

    这些域名都可以正常解析,并且可以收到服务器返回的数据。

    例如:

    PING update.fortiguard.net
    

    可以正常解析到 Fortinet 的服务器地址,并收到 ICMP 响应。

    这时候就出现了一个非常奇怪的现象:

    Internet              pass
    DNS                   pass
    FortiGuard 域名解析     pass
    Ping FortiGuard       pass
    FortiGuard 服务       error
    

    也就是说,FortiGate 明明可以访问 Fortinet 的服务器,但是 FortiGuard 依然提示无法连接。


    5. 更换 DNS

    既然 FortiGuard 出现问题,第二个怀疑对象就是 DNS。

    于是又更换了 DNS 服务器进行测试。

    例如:

    1.1.1.1
    8.8.8.8
    

    更换 DNS 后重新测试:

    execute ping update.fortiguard.net
    

    域名依然能够正常解析。

    但是:

    FortiGuard 仍然无法正常连接。

    所以到这里,基本可以排除普通 DNS 故障。


    6. 手动执行 FortiGuard 更新

    接下来通过 CLI 强制执行一次 FortiGuard 更新:

    execute update-now
    

    这个命令用于立即触发 FortiGuard 数据库更新。

    需要注意:

    execute update-now 是更新 FortiGuard 安全数据库,并不是升级 FortiOS 固件。

    执行之后没有看到特别明显的错误信息。

    但是检查数据库版本后发现,FortiGuard 数据库依然没有正常更新。

    这时候就越来越不像普通的网络故障了。


    7. 最终发现:CRL Scope 错误

    如果基础网络正常,但 FortiGuard 仍然无法连接,可以进一步打开更新服务 Debug:

    diagnose debug application update -1
    diagnose debug application forticldd -1
    diagnose debug enable
    [...]
    [365] __ssl_crl_verify_cb: Cert error 44, different CRL scope. Depth 2
    [1436] SSL_dump_handshake_err: Certificate failed verification. Error: 44 (different CRL scope), depth: 2, subject: /C=US/O=DigiCert Inc/OU=http://www.digicert.com/CN=DigiCert High Assurance EV Root CA.
    [...]
    

    Debug 中出现:

    Cert error 44, different CRL scope
    
    Certificate failed verification.
    Error: 44 (different CRL scope)
    

    继续排查之后,我也发现了 Fortinet 官方社区发布的相关 Technical Tip。

    官方确认,2026 年 9 月出现了一起 FortiGate 无法访问部分 FortiGuard 服务的问题。

    Fortinet 官方说明,这个问题影响使用特定 DigiCert 证书链的 FortiGuard Anycast 服务。

    这也解释了为什么:

    Ping FortiGuard       pass
    DNS                          pass
    Internet                    pass
    FortiGuard TLS       error
    

    问题并不是网络层无法到达服务器,而是TLS 连接建立过程中,证书撤销检查出现了问题


    8. CRL 是什么?

    CRL 的全称是:

    Certificate Revocation List

    中文一般叫:

    证书吊销列表

    它用于检查一个数字证书是否已经被证书颁发机构吊销。

    FortiGate 在与 FortiGuard 建立 TLS 连接的时候,会对服务器证书链进行验证,其中就涉及证书撤销检查。

    而这次问题与 DigiCert 对相关 CRL 文件进行调整有关。

    Fortinet 官方说明,2026 年 9 月 9 日,DigiCert 更新了相关 CRL 的内容,并增加了:

    Issuing Distribution Point
    

    也就是:

    IDP
    

    扩展。

    FortiGate 在执行证书撤销检查时触发了 CRL Scope 校验问题,最终出现:

    Error 44: different CRL scope
    

    导致 TLS 握手失败。

    需要特别注意:

    这并不意味着相关 DigiCert 证书真的被吊销。

    Fortinet 官方明确说明,这次问题不是证书被吊销,而是 CRL / IDP 的变化触发了 FortiGate 当前证书撤销检查机制中的问题。


    9. 为什么重启和换 DNS 都没用?

    现在回头看整个故障过程,就比较容易理解了。

    我的排查过程实际上是:

    FortiGate
       │
       ├── Internet ───────────── pass
       │
       ├── DNS ─────────────── pass
       │
       ├── Ping FortiGuard ──────── pass
       │
       ├── FortiGuard TCP/TLS ───── error
       │
       └── Certificate / CRL
                    │
                    └── Error 44
                        different CRL scope
    

    所以:

    重启设备

    只能解决设备自身进程、连接状态等临时问题。

    但是无法解决远端证书链和本地 CRL 验证逻辑之间的问题。

    更换 DNS

    只能解决域名解析问题。

    但 DNS 本身就是正常的,所以换 DNS 自然也不会解决 TLS 证书验证失败。

    Ping FortiGuard

    只能证明 ICMP 网络可达。

    Ping 通并不代表 HTTPS/TLS 一定能够正常建立。

    这也是这次故障最容易误判的地方。


    10. Fortinet 官方解决方法

    幸运的是,在排查过程中发现了 Fortinet 官方社区的 Technical Tip。

    Fortinet 后续更新说明,DigiCert 已经撤回了相关 CRL 的 IDP 修改,因此 Anycast FortiGuard 服务本身的问题已经得到缓解。

    对于仍然受到影响的设备,Fortinet 建议清理 FortiGate 上的相关 CRL Cache。

    官方给出的操作非常简单。

    首先关闭 FortiGuard Anycast:

    config system fortiguard
        set fortiguard-anycast disable
    end
    

    然后重新开启:

    config system fortiguard
        set fortiguard-anycast enable
    end
    

    最后执行一次:

    execute update-now
    

    执行之后,FortiGuard 恢复正常

    也就是说,最终并没有修改:

    • DNS
    • WAN
    • 默认路由
    • 防火墙策略
    • Internet 出口

    而是通过重新初始化 FortiGuard Anycast,让设备清理相关 CRL Cache,恢复了 FortiGuard 的连接。


    11. 如果仍然无法解决

    Fortinet 官方还提供了一个更直接的临时 workaround:

    关闭 Anycast,改用 Unicast FortiGuard。

    config system fortiguard
        set fortiguard-anycast disable
        set protocol udp
        set port 8888
        set sdns-server-ip 208.91.112.220 173.243.140.53 210.7.96.53 200.91.112.220
    end
    
    execute update-now
    

    Fortinet 说明,这种方式通过切换到 Unicast FortiGuard 来绕开受影响的 Anycast 服务。

    同时,这些设置不会影响 FortiGate 正常的生产转发流量。

    不过现在 DigiCert 已经撤回相关 CRL 的 IDP 修改,因此如果重新启用 Anycast 后已经恢复正常,通常没有必要长期关闭 Anycast。

    12. 这次故障给我的一个经验

    这次问题其实挺有意思。

    一开始我认为是:

    “FortiGuard 连不上,是不是我的网络有问题?”

    于是:

    1. 重启设备;
    2. 再次重启;
    3. 第三次重启;
    4. 检查 Internet;
    5. Ping 8.8.8.8
    6. Ping FortiGuard;
    7. 检查 DNS;
    8. 更换 DNS;
    9. CLI 手动执行更新。

    结果全部没有解决。

    还好最后继续查了 Fortinet 官方社区。

    才发现原来 2026 年 9 月 Fortinet 官方已经针对这个问题发布了 Technical Tip。

    这也让我意识到:

    遇到 FortiGuard 这类云服务异常时,不要只盯着本地网络排查,也要及时检查 Fortinet 官方社区和官方服务状态。

    尤其是当:

    Internet 正常
    DNS 正常
    Ping FortiGuard 正常
    

    但 FortiGuard 仍然不可用的时候,就应该开始考虑:

    • TLS
    • 证书
    • CRL
    • FortiGuard Anycast
    • FortiGuard 服务端变化

    而不是一直重复修改 DNS 或重启设备。 真正的问题是 2026 年 9 月 FortiGuard Anycast 与 DigiCert CRL / IDP 变化引发的 CRL Scope 验证问题。 这次排障也再次说明:

    网络能通 ≠ 应用层服务一定正常。

    尤其是涉及 HTTPS、TLS、证书链和 CRL 的服务,仅仅 Ping 通服务器远远不够。