Created on
12-17-2025
03:29 AM
Edited on
12-17-2025
04:34 AM
By
Jean-Philippe_P
| Description | This article describes the steps to configure the SSL VPN pre-logon connection with a machine certificate. |
| Scope | FortiGate, FortiClient/EMS. |
| Solution |
When using computer certificates on an SSL VPN connection, modify the configuration XML from FortiClient EMS (or manually for standalone deployments or personal VPNs) to set the following parameter:
<allow_standard_user_use_system_cert>1</allow_standard_user_use_system_cert>
In a standard Windows user session, FortiClient displays and uses client certificates stored in the user certificate store; certificates in the Local Machine store may be visible but cannot be used unless this setting is enabled. Refer to the following articles for background information:
After the XML setting is modified, follow the steps below to allow new computers to be onboarded by using a pre-logon SSLVPN connection. See this article: Technical Tip: SSL VPN with LDAP-integrated Machine and User Certificate for additional context.
Configure peer users for user and computer certificates:
edit "CertificateUsers" set ca "CA_Windows" next set ca "CA_Windows" next end
An LDAP instance for user certificates can use the default 'account-key-cert-field' and 'account-key-filter' values. For computer certificates, adapt these values so that the correct subject alternative name field and directory attributes are used.
edit "AD_Users" set server "10.7.0.1" next set server "10.7.0.1" next end
The 'cnid' value can be adapted to the directory schema in use (for example, 'samaccountname' or 'userPrincipalName'). This is relevant when credentials are supplied in addition to the certificate, or when the LDAP configuration is reused for other services. For certificate-only computer authentication, cnid does not affect the result. See this article: Technical Tip: Using logon name for the LDAP authentication.
The 'account-key-cert-field' and 'account-key-filter' options define which certificate field is used to look up the directory object:
(&(userPrincipalName=%s)(!(UserAccountControl:1.2.840.113556.1.4.803:=2))).
The first part matches the userPrincipalName attribute, and the second part filters out disabled or locked accounts by inspecting the UserAccountControl flag.
set account-key-processing strip
The 'account-key-processing strip' option strips the domain portion from the othername value before performing the LDAP lookup.
Reference the PKI users and LDAP servers in user groups:
edit "GR_Users" set member "CertificateUsers" "AD_Users" config match edit 1 set server-name "AD_Users" next end next edit "GR_Machines" set member "CertificateMachines" "AD_Machines" config match edit 1 set server-name "AD_Machines" next end next end
In this example, one group is used for user certificates and another group for computer certificates, each mapped to the corresponding domain security group.
Configure the standard Secure Sockets Layer Virtual Private Network elements, ensuring that the client certificate requirement is enforced for pre-logon access:
set client-cert enable |
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.