FortiClient Error -5

Wenn der FortiClient unter SSL-VPN die folgende Fehlermeldung ausgibt, kann sich ein ganz anderer Fehler dahinter verbergen! Zumal an der SSL-VPN Konfiguration an sich nichts verändert wurde und diese ja über eine lange Zeit hinweg perfekt funktioniert hat!

Fehlermeldung:
Die VPN Verbindung konnte nicht hergestellt werden. Entweder ist der VPN Server nicht erreichbar oder Ihr Zertifikat ist nicht bekannt. (-5)

SSL-VPN Error Dialog mit dem Error -5

In diesem Fall kann man schon einige Zeit suchen bis man den echten Grund findet!
Vermutlich ist bei einem Firmware Update ein Migrationsfehler der Konfig passiert.

Der echte Grund ist, es wurde TLS 1.2 deaktiviert in der Forti — warum auch immer!
Das ist erst durch einen einfachen Test mit openssl herausgekommen:

openssl s_client -connect ssl-vpn-hostname:10443 -tls1_2

CONNECTED(00000003)
4037FACC777F0000:error:0A00042E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:../ssl/record/rec_layer_s3.c:1584:SSL alert number 70
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 208 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1700663685
Timeout : 7200 (sec)
Verify return code: 0 (ok)
Extended master secret: no
---

Aha! Das ist also der echte Hintergrund, ein Gegentest mit TLS1.3 hingegen funktioniert fehlerfrei!

openssl s_client -connect ssl-vpn-hostname:10443 -tls1_3
CONNECTED(00000003)
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = ssl-vpn-hostname
verify return:1
---
Certificate chain
0 s:CN = ssl-vpn-hostname
i:C = US, O = Let's Encrypt, CN = R3
a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
v:NotBefore: Nov 19 10:50:52 2023 GMT; NotAfter: Feb 17 10:50:51 2024 GMT
1 s:C = US, O = Let's Encrypt, CN = R3
i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
v:NotBefore: Sep 4 00:00:00 2020 GMT; NotAfter: Sep 15 16:00:00 2025 GMT
2 s:C = US, O = Internet Security Research Group, CN = ISRG Root X1
i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
a:PKEY: rsaEncryption, 4096 (bit); sigalg: RSA-SHA256
v:NotBefore: Jun 4 11:04:38 2015 GMT; NotAfter: Jun 4 11:04:38 2035 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
..... snip .....

Das lässt sich durch folgende Commandos auf der CLI in der Forti beheben:

config vpn ssl settings
set ssl-min-proto-ver tls1-2
set ssl-max-proto-ver tls1-3
end

(und dann auch gleich ein paar andere Parameter mit angepasst)

config vpn ssl settings
set dtls-tunnel enable
set dtls-min-proto-ver dtls1-0
set dtls-max-proto-ver dtls1-2
set ztna-trusted-client disable
end

(wichtig ist auch eine Kontrolle der Zeile mit dem SSL-Zert, ob hier wohl das richtige ausgewählt ist)

config vpn ssl settings
set servercert "ssl-vpn-hostname...."
end

Danach hat zumindest die Verbindung gleich wieder geklappt. Es wurde nun aber der folgende Fehler angezeigt:
Falsche Anmeldeinformation oder SSLVPN Konfiguration. (-7200)

Alterntiver Lösungsansatz

Im Windows TLS 1.2 und TLS 1.3 aktivieren, die alten TLS Varianten alle deaktivieren.
ACHTUNG: diese Einstellungen wirken systemweit! Daher also bitte Vorsicht, wirklich nur verstellen wenn das die IT Abteilung freigibt bzw wenn sie sich sicher sind das hier keine Folgeprobleme damit entstehen könnten! 😉

Der FortiClient verwendet eigentlich die Settings vom System, das kann hier eingestellt werden:
Windows-R (run command)
inetcpl.cpl (startet den System Dialog „Eigenschaften von Internet“ – das bezieht sich auf die Settings vom MS-IE. ACHTUNG: das wirkt sich im ganzen Windows aus was hier eingestellt wird!)

Systemweite Settings für die Netzwerk/Internet Einstellungen

Dieser Versuch hier TLS 1.3 zu aktivieren hat leider nichts gebracht, es wurde vom FortiClient trotzdem nut TLS 1.2 verwendet. Daher war die Änderung der Forti Config in dem Fall die einzig richtige Lösung für uns.