Created on
‎12-13-2021
04:12 PM
Edited on
‎04-16-2025
06:13 AM
By
Jean-Philippe_P
Description | This article describes how to resolve an issue with allowing HTTPS (port 443) traffic when a certificate-probe-failed error message occurs on FortiGate SSL logs that block all the traffic while read-only certificate inspection is used. |
Scope |
FortiGate. |
Solution |
In FortiGate, the 'certificate-probe-failed' process works as follows: When FortiGate connects to a server (for example, for SSL VPN, web filtering, or HTTPS inspection), it checks the server's certificate for:
If the certificate fails validation (for example: expired, untrusted, or mismatched), FortiGate flags it as 'certificate-probe-failed'.
Certificate probe traffic may require additional parameters to reach the destination server correctly. Certificate probe traffic can be controlled with the following options below.
config ips global config tls-active-probe end
As it is impossible to modify any option for a 'read-only certificate', creating a clone of the 'read-only certificate' and setting the action as 'allow' instead of the default action as 'block' for the HTTPS protocol is recommended.
This behavior is controlled by the set cert-probe-failure [block|allow] setting in the SSL Inspection profile.
This setting will allow the original SSL connection to continue when the certificate-probe attempt fails. This feature is available per protocol.
Using the CLI :
config firewall ssl-ssh-profile edit <certificate profile name> config <protocol name> set cert-probe-failure [allow | block] --> Default action is block; change it to allow.
Note:
config firewall ssl-ssh-profile<----- This command is used to modify the SSL-ssh inspection profile. edit <Clone of certificate-inspection><----- This command is used to modify the configured inspection profile.
config https <----- This command is used to modify the settings of the HTTPS protocol. set cert-probe-failure allow <----- This command is used to change firewall behavior when pre-probe fails (Default action is Block). end end
List of available protocols for which the invalid-server-cert action can be modified:
See the CLI reference for more information about configuring each.
If FortiGate fails in 'certificate-probe' and the 'certificate-probe-failed' is allowed, FortiGate cannot get the server certificate for the deep inspection, then it will pass the session. For example, if the server certificate has expired, and FortiGate is set to block the expired certificate because FortiGate cannot see the server certificate, it passes the session. In the FortiGate log, it will show two different logs, the first log shows 'eventsubtype="certificate-probe-failed"', and the following log will show 'action="bypass"'.
The HTTP certificate probe failed logs will be visible under Log and Report -> Security Events -> SSL:
Example:
date=2025-01-21 time=18:24:47 id=7462312776933834936 itime="2025-01-21 18:24:47" euid=3 epid=51504 dsteuid=3 dstepid=101 logflag=0 logver=704062726 devid="FG6H0FXXXXXXXXXX" vd="root" type="utm" subtype="ssl" level="notice" sessionid=614289322 policyid=160 srcip=172.30.0.160 dstip=20.122.253.43 srcport=50908 dstport=443 proto=6 logid=1700062306 service="SSL" action="bypass" eventtime=1737455087728722267 srcintfrole="undefined" dstintfrole="undefined" srcintf="x2" dstintf="x1" eventtype="ssl-anomaly" hostname="www.catalog.update.microsoft.com" msg="SSL connection is bypassed due to unable to retrieve server's certificate" tz="+0800" eventsubtype="certificate-probe-failed" srcuuid="b08738ae-db0e-51eb-6117-cd4931cba94b" dstuuid="b08738ae-db0e-51eb-6117-cd4931cba94b" tlsver="tls1.3" sni="www.catalog.update.microsoft.com" policytype="security-policy" srccountry="Reserved" dstcountry="United States" poluuid="3648201e-b91b-51ef-64a2-449af6c0c252" dtime="2025-01-21 18:24:47" itime_t=1737455087 devname="FG6H0FXXXXXXXXXX"
When running the debug, it is possible to find the Probe failed message:
diagnose ips filter set "host x.x.x.x" <----- testPC's IP address.
[415@-1]eng_debug_log: Probe info:
|