Ferritaas Incident Intelligence
Defect Intelligence Report Bug 0867319 Severity: Critical (P1)

Deep SSL Inspection CA Certificate Expiration Causing Global Untrusted Alerts

Expiration of the internal root or subordinate Certificate Authority (CA) configured in FortiOS Deep SSL/SSH Inspection profiles causes all re-signed HTTPS connections to immediately fail cryptographic validation, halting enterprise web access with critical untrusted certificate alerts.

Technical Root Cause Analysis

When FortiGate performs full Deep SSL Inspection, it acts as a cryptographic man-in-the-middle proxy. It terminates outbound TLS sessions initiated by client workstations, validates the upstream server certificate against public trust stores, and synthesizes a replacement server certificate on-the-fly containing the requested domain name (CN / SAN). This synthesized certificate is signed using the private key of a local Certificate Authority (CA) installed on the FortiGate (such as Fortinet_CA_SSL or an Enterprise Subordinate PKI CA).

When this local CA certificate reaches its Not After expiration timestamp, every synthesized certificate dynamically inherits the expired issuer validity window. Client web browsers (Google Chrome, Microsoft Edge, Mozilla Firefox, Apple Safari) instantly reject the TLS handshake with severe security warnings (NET::ERR_CERT_AUTHORITY_INVALID, SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE). In modern browsers, HSTS (HTTP Strict Transport Security) prevents users from clicking through or bypassing the alert, causing complete disruption to business-critical SaaS, banking, and cloud workloads.

[cert_mgr 8201] Local Certificate Validation Audit: Certificate: Fortinet_CA_SSL Subject: CN = Fortinet_CA_SSL, O = Fortinet, C = US Issuer: CN = Fortinet_CA_SSL, O = Fortinet, C = US Validity: Not Before: Sep 10 00:00:00 2021 GMT Not After : Sep 09 23:59:59 2026 GMT Status: EXPIRED (Elapsed by 14 hours 22 mins) [wad 14920] ssl_mitm_sign: certificate chain contains expired root CA (Fortinet_CA_SSL)

Affected Firmware & Blast Radius Matrix

Inspection Configuration Client Impact HSTS Bypass Capability Remediation Requirement
Deep SSL Inspection (Full MITM) Critical: Total HTTPS outage for all managed clients Blocked (No user bypass allowed) Rotate CA cert or toggle to Certificate-Inspection
Certificate-Inspection (SNI Only) Unaffected: Client negotiates directly with web server Normal TLS handshake No immediate action required
Inbound SSL Acceleration Critical: Inbound customers reject public web services Blocked by external clients Renew server certificate and intermediate bundle

Software Scope: Affects all FortiOS versions (7.0, 7.2, 7.4, and 7.6). While root CA expiration is an operational lifecycle event, Bug 0867319 relates to the lack of proactive administrative alerting and missing automated rollover to standby subordinate CAs before the hard expiration event.

Step 01: Free Verification CLI (Safe Read-Only)

Execute these diagnostic commands to inspect all installed local and CA certificates, check exact expiration timestamps, and identify bound SSL profiles:

Diagnostic Commands

# 1. Check expiration timestamps of all local signing certificates
get vpn certificate local details | grep -E "Certificate name|Not After"

# 2. Inspect certificate validity and revocation status
diagnose vpn certificate check

# 3. List active SSL/SSH inspection profiles utilizing local CAs
show firewall ssl-ssh-profile | grep -E "config firewall ssl-ssh-profile|set caname"

# 4. Check active WAD SSL session metrics
diagnose test application wad 1

Remediation & Workaround Steps (Teaser Preview)

Follow the emergency zero-downtime recovery procedure in the Ferrite interactive platform:

Step 02: Emergency Workaround — Immediate SNI Fallback

Temporarily rebind policies to certificate-inspection to immediately restore global web browsing without security alerts.

🔒 Interactive CLI Available in Ferrite Runbook #08

Step 03: Generate & Import New Subordinate CA with Extended Validity

Generate a new 2048-bit or 4096-bit RSA Subordinate CA signed by corporate PKI or re-generate internal Fortinet self-signed root.

🔒 Interactive CLI Available in Ferrite Runbook #08

Step 04: Push New CA to Endpoints & Flush WAD Dynamic SSL Cache

Distribute the public CA certificate to domain clients via Active Directory GPO / Microsoft Intune and flush cached SSL sessions.

🔒 Interactive CLI Available in Ferrite Runbook #08
⚡ Ferrite Platform Superpowers

Execute the Complete Runbook with Live Browser Automation

Connect your FortiGate via browser console (Web Serial) or local SSH bridge, verify certificate chains in real-time, generate ready-to-run Tera Term scripts, and export sanitized TAC dossiers.

Live Browser Automation Direct terminal connection with live step checkoff.
📟
1-Click Tera Term (.ttl) Generate scripts for air-gapped jumpboxes.
🛡️
Zero-Trust Scrubber Scrub serials and credentials in local browser RAM.
📄
TAC P1 Escalation Dossier Standardized evidence export with SHA-256 seal.

Frequently Asked Questions

Why did all client workstations stop accessing HTTPS sites simultaneously?

Deep SSL inspection dynamically signs every external website certificate using the local CA on FortiGate. The moment that CA passes its expiration timestamp, every re-signed site is rejected by client browsers.

How can we restore web browsing immediately while creating a new CA?

Switching firewall policies from Deep Inspection to 'certificate-inspection' (SNI inspection) stops on-the-fly certificate re-signing, immediately restoring web access without warnings.

Do client devices need a new root certificate installed when the FortiGate CA is renewed?

Yes. If a new root CA is generated on FortiGate, its public certificate (.crt / .cer) must be installed into the Trusted Root Certification Authorities store on all client machines via GPO, Intune, or MDM.