| Description | This article provides a clear explanation of how TLS and mTLS operate, outlining the distinction between standard encrypted transport and certificate-based client authentication. It also clarifies which FortiGate features rely on TLS and which ones support mutual TLS (mTLS). |
| Scope | FortiGate. |
| Solution |
TLS (One-Way Authentication).
TLS provides encrypted transport and server authentication only. During the handshake, the server presents its certificate, and the client validates it. However, the client is not required to present a certificate. As a result, the connection is accepted anonymously at the transport layer, and the client is authenticated later using application-layer credentials (for example, usernames, passwords, API tokens, or SAML assertions).
TLS is used by FortiGate in scenarios where encrypted transport is required but device identity is not enforced:
In all these cases, TLS provides confidentiality and server authentication, while client verification relies on application-layer identities rather than certificate-based device authentication.
Key limitations:
mTLS (Two-Way Authentication):
mTLS (Mutual TLS) extends standard TLS by enforcing bidirectional certificate authentication. During the TLS handshake, the server requests a client certificate and validates it before the session is established. The client must present a certificate issued by a trusted Certificate Authority (CA); otherwise, the session is terminated at the cryptographic layer. This mechanism ensures the client’s device identity is validated before any application data, login banner, or VPN portal is exposed.
Advantages of mTLS:
Where FortiGate supports mTLS:
mTLS use in proxy architectures:
How mTLS behaves in proxy mode depends on the proxy type and whether the TLS session is terminated on the FortiGate. In practice, Reverse Proxy designs commonly terminate mTLS.
When FortiGate operates as a Reverse Proxy (Access Proxy VIP), it terminates the inbound TLS session and can enforce client certificate authentication. mTLS Termination (Client --> Proxy) This is the most common and operationally efficient approach. Process summary:
FortiGate can pass client certificate information to backend services by adding the X-Forwarded-Client-Cert (XFCC) header.
The backend server receives the encoded certificate but does not participate in mTLS directly.
There is more information available in the link below: mTLS passthrough (Forward Proxy):
In Forward Proxy mode, the FortiGate generally does not terminate mTLS traffic. This behavior is expected because terminating mTLS in a Forward Proxy would require the proxy to impersonate the destination server, which is not feasible for mutual certificate authentication.
Process summary:
Limited inspection capability:
Related documents:
|
The Fortinet Security Fabric brings together the concepts of convergence and consolidation to provide comprehensive cybersecurity protection for all users, devices, and applications and across all network edges.
Copyright 2025 Fortinet, Inc. All Rights Reserved.