Skip to main content
Great_Dane
New Member
February 11, 2025
Question

Adding Fortigate VM eval to FortiManager VM eval

  • February 11, 2025
  • 29 replies
  • 10049 views

Hi everyone,

 

I am trying to add a Fortigate VM eval, generated via the FortiCloud account to the FortiManager VM eval, also generated via the FortiCloud account. So, both units are "self-generated" evals. I am not talking about evals obtained through the local supplier. It is not working!!!

 

From the debug output on FGM, it seems like the FG is not sending any certificate to the FGM while trying to setup communication via FGFM.

 

This is a debug output from the FGM:

2025-02-11 06:44:29 Use cert idx=0 by peer_ca = 1 2025-02-11 06:44:29 __info_callback,993: role=svr,state=23, TLSv1.3 SSLv3/TLS write certificate 2025-02-11 06:44:29 __info_callback,993: role=svr,state=40, TLSv1.3 TLSv1.3 write server certificate verify 2025-02-11 06:44:29 __info_callback,993: role=svr,state=36, TLSv1.3 SSLv3/TLS write finished 2025-02-11 06:44:29 __info_callback,993: role=svr,state=46, TLSv1.3 TLSv1.3 early data 2025-02-11 06:44:29 __info_callback,993: role=svr,state=46, TLSv1.3 TLSv1.3 early data 2025-02-11 06:44:29 TLSv1.3 write fatal alert: unknown 2025-02-11 06:44:29 fw_proto_ssl.c,1026: TLSv1.3 error 2025-02-11 06:44:29 fw_proto_ssl.c,__get_error,1615, err=167772359, error:0A0000C7:SSL routines::peer did not return a certificate. 2025-02-11 06:44:29 fw_proto_ssl.c,__get_error,1629, ret=-4, error=1, errno=0,Success. 2025-02-11 06:44:29 proxy_session.c,__proxy_session_cleanup, 118:cnt=0, session=0x558f996106bc.

 

 

On FG unit I can see the FGM is resetting the connection:

FGFMs: setting session 0x5578e5f67440 exclusive=0 FGFMs: Connect to 10.100.100.20:541, local 10.100.100.21:10514. FGFMs: set_fgfm_sni SNI<fortinet-ca2.fortinet.com> FGFMs: Load Cipher [ALL:!RC4:!EXPORT:@STRENGTH] FGFMs: Load TLS 1.3 Cipher [TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256] FGFMs: Set self_initiated = 1 FGFMs: before SSL initialization FGFMs: CA to broadcast: subject fortinet-subca2001, issuer fortinet-ca2 FGFMs: Broadcast 1 CA subject names to FMG FGFMs: SSLv3/TLS write client hello FGFMs: SSLv3/TLS write client hello FGFMs: SSLv3/TLS read server hello FGFMs: SSLv3/TLS write change cipher spec FGFMs: SSLv3/TLS write client hello FGFMs: SSLv3/TLS write client hello FGFMs: SSLv3/TLS read server hello FGFMs: TLSv1.3 read encrypted extensions FGFMs: SSLv3/TLS read server certificate request FGFMs: Verified CA certificate 1: (subject: fortinet-subca2001, issuer: fortinet-ca2) FGFMs: Verified peer certificate 0: (subject: *****, issuer: fortinet-subca2001) FGFMs: SSLv3/TLS read server certificate FGFMs: TLSv1.3 read server certificate verify FGFMs: SSLv3/TLS read finished FGFMs: SSLv3/TLS write client certificate FGFMs: SSLv3/TLS write finished FGFMs: SSL negotiation finished successfully FGFMs: client:send: get auth serialno=***** mgmtid=00000000-0000-0000-0000-000000000000 platform=FortiGate-VM64-KVM fos_ver=700 minor=6 patch=2 build=3462 branch=3462 maxvdom=2 fg_ip=10.100.100.21 hostname=***** harddisk=yes biover=04000002 harddisk_size=32768 logdisk_size=32124 mgmt_mode=normal enc_flags=0 mgmtip=10.100.100.21 mgmtport=443   FGFMs: [__get_error:1169] error=5, errno=104,Connection reset by peer. FGFMs: [__get_error:1169] error=5, errno=32,Broken pipe. FGFMs: SSL Alert read: fatal unknown FGFMs: Cleanup session 0x5578e5f67440, 10.100.100.20. FGFMs: Destroy session 0x5578e5f67440, 10.100.100.20.

 

Both units are running FortiOS v7.6.2.

 

I have tried also with versions 7.4.5 and FG version 7.2.10. No success!

I have gone through all the documentation and know everything about changes from the >= 7.4.6 and peer certificate SN validation, low encryption algorithms, etc. Nothing worked!!!

 

I have to mention that adding a production or PAYG FG in Azure works like a charm (even with the custom certificates generated via local PKI). So, my guess is that alongside other limitations of FG VM eval (e.g., maximum of 3 routes, 1 CPU and 2 GB of RAM), you cannot mange this FG VM with FGM. Apparently, this had worked before (at least to other folks on the Internet), but it seems like it does not work anymore.

Anyone have had any luck with this setup?

 

Thank you!

29 replies

Rub_aprendicia
Explorer
July 9, 2025

Hi, 

No, there is no way.

This only works with version lower than v7.6.2/v7.4.6/v7.2.10,

 

And, This is the problem, the FortiOS Versions.

from the link:

https://community.fortinet.com/t5/FortiManager/Technical-Tip-Setup-custom-certificate-for-FGFM-proto...

 

you can see:

    Note: 

     Starting in v7.6.2/v7.4.6/v7.2.10, the fgfm-peercert-withoutsn command is no longer         supported, and FortiManager will always check the FortiGate's certificate for the         FortiGate Serial Number.

 

You can see that the command that allow register fortigate in fortimanager without certificates is only valid in lower versions: 

"

From v7.2.10/v7.4.6/7.6.2 the above command is not available anymore.

"

 included versions

 

In summary, you can use this command only until versions 7.2.9, 7.4.5 and 7.6.1

config sys global

     set fgfm-peercert-withoutsn enable

 

And this command is the key for register Eval VM (kvm) fortigate in Fortimanager Eval VM (kvm).

 

lukaseng
Visitor III
July 9, 2025

That is so disappointing but thanks for confirming it.

I can not find these version in the support portal for download. Where is it possible to find those?

Rub_aprendicia
Explorer
July 9, 2025

Finally, i have desisted.

And i am working with FGT 7.4.4 and FMG 7.4.3 for my EVAL LAB.

This is the Versions more nearest to 7.4.5 that i have.

 

I was working with the FMG 7.6.1, BUT is a full BUG, i dont recommended to you

 

Good luck with your EVAL LAB,

Ru

rwatson
New Member
January 27, 2026

Hi all, wish I had found this thread earlier!  

I've hit the same issue with 7.6.5 for both FG and FMG.

I went so far as to try and add a new private CA and generate a 512-bit certs for both ends' FGFM protocols but whilst I could load the certificates / CAs and set it for use in FGFM, they refused to actually use the certificate with TLS ( "no suitable signature algorithm" error).  

I will now try to go back and re-build wth 7.6.1 (?) to see if that will work.

Pretty frustrating and big waste of time as there are really no clear error messages from either FG or FMG sides as to what is going on.

New Member
April 24, 2026

Looks like people still looking for solution. The following worked for me for Fortigate VM v7.4.11 Eval + Fortimanager v7.6.6 Trial

 


 

openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -days 3650 -nodes -keyout MyRootCA.key -out MyRootCA.crt -subj "/CN=MyFortiLab"
openssl req -x509 -newkey ed25519 -nodes -keyout MyFGT-VM.key -CA MyRootCA.crt -CAkey MyRootCA.key -days 3650 -subj "/CN=<My FGT-VM S/N>" -out MyFGT-VM.crt
openssl req -x509 -newkey ed25519 -nodes -keyout MyFMG-VM.key -CA MyRootCA.crt -CAkey MyRootCA.key -days 3650 -subj "/CN=<My FMG-VM S/N>" -out MyFMG-VM.crt

 

FortiGate:


config vpn certificate ca
 edit "MyRootCA"
 set ca "-----BEGIN CERTIFICATE-----"
end

config vpn certificate local
 edit "MyFGT-VM"
  set private-key "-----BEGIN PRIVATE KEY-----"
  set certificate "-----BEGIN CERTIFICATE-----"
end

config system central-management
 set local-cert "MyFGT-VM"
 set ca-cert "MyRootCA"
end


Fortimanager:
 

config system certificate ca
 edit MyRootCA
  set ca "-----BEGIN CERTIFICATE-----"
end

config system certificate local
 edit MyFMG-VM
  set private-key "-----BEGIN PRIVATE KEY-----"
  set certificate "-----BEGIN CERTIFICATE-----"
end

config system global
    set fgfm-allow-vm enable
    set fgfm-ca-cert MyRootCA
    set fgfm-cert-exclusive enable
    set fgfm-local-cert "MyFMG-VM"
end

 


 

FMG-VM64 # diagnose dvm device list
--- There are currently 1 devices/vdoms managed ---
--- There are currently 1 devices/vdoms count for license ---

TYPE            OID    SN               HA      IP              NAME          ADOM   IPS                FIRMWARE        HW_GenX
fmgfaz-managed  169    FGVMEVUT******** -       10.*.*.*        FortiGate-VM  root   7.0 MR4 (2878)  N/A
                |- STATUS: dev-db: not modified; conf: in sync; cond: OK; dm: autoupdated; conn: up; source: FMG
                |- vdom:[3]root flags:1 adom:root pkg:[never-installed]

 

sjoshi
Staff
Staff
April 24, 2026

can look into this:

 

Thanks, Salon
New Member
August 30, 2026

Hi everyone, It is possible to make it work by creating custom certificates. Here is a guide on how to do it on versions 7.6.7(both FGT and FMG):

 

The Fix: Custom CA + Serial-Number Certificates

Step 1 — Get both serial numbers (FGT & FMG)

On each device:

get system status

Note the Serial-Number field.

Step 2 — Generate a CA and per-device certificates (OpenSSL)

Use ed25519* for the leaf certs — the FortiGate eval license restricts its own CSR generation to RSA-512, which many modern TLS stacks reject with a "no suitable signature algorithm" error. Generating the certs externally with ed25519 avoids that entirely.

*Ed25519 is a modern digital signature algorithm built on elliptic curve cryptography — specifically using a curve called Curve25519 combined with the EdDSA (Edwards-curve Digital Signature Algorithm) signature scheme.

bash

# Root CA
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -days 3650 -nodes \
-keyout MyRootCA.key -out MyRootCA.crt -subj "/CN=MyFortiLab"

# FortiGate certificate — CN MUST be the FortiGate's serial number
openssl req -x509 -newkey ed25519 -nodes \
-keyout MyFGT-VM.key -CA MyRootCA.crt -CAkey MyRootCA.key -days 3650 \
-subj "/CN=<FortiGate Serial Number>" -out MyFGT-VM.crt

# FortiManager certificate — CN = FortiManager's serial number
openssl req -x509 -newkey ed25519 -nodes \
-keyout MyFMG-VM.key -CA MyRootCA.crt -CAkey MyRootCA.key -days 3650 \
-subj "/CN=<FortiManager Serial Number>" -out MyFMG-VM.crt

Step 3 — Import certificates via GUI (both devices)

On the FortiGate (System > Certificates):

  • Import MyRootCA.crt as a CA Certificate
  • Import MyFGT-VM.crt + MyFGT-VM.key as a Local Certificate

Fortigate might rename the certificate for something like CA_Cert_1.

On FortiManager (System Settings > Certificates):

  • Import MyRootCA.crt as a CA Certificate
  • Import MyFMG-VM.crt + MyFMG-VM.key as a Local Certificate

Note the exact names FortiOS/FortiManager assign on import — they may not match your filenames exactly, and the CLI commands below need exact, case-sensitive matches. 

Step 4 — CLI: bind the certificates for FGFM

On the FortiGate:

config system central-management
set local-cert "MyFGT-VM"
set ca-cert "MyRootCA"
end

Known quirk on some builds: ca-cert may not appear as a valid option until after local-cert has been successfully set — if you get a "command parse error" on ca-cert alone, set local-cert first, then try ca-cert again.

On FortiManager:

config system global
set fgfm-allow-vm enable
set fgfm-ca-cert MyRootCA
set fgfm-cert-exclusive enable
set fgfm-local-cert "MyFMG-VM"
end

Step 5 — If the connection still fails after configuring both sides

Run debug on FortiManager to see exactly where the TLS handshake breaks:

diagnose debug application fgfmsd -1
diagnose debug console timestamp enable
diagnose debug enable

(Disable afterward with diagnose debug disable.)

 

TLSv1.3 read fatal alert: unknown CA" (FortiManager side) — the FortiGate doesn't yet trust MyRootCA. Confirm ca-cert is actually set under central-management on the FortiGate.

"Cert verification error: unable to get local issuer certificate" / Remote issuer shows fortinet-subca2001 — the FortiGate is still presenting its old default eval certificate, not your custom one. The local-cert setting may not have taken effect at the protocol level even though the CLI accepted it — re-issue the set local-cert command to force it to apply, then retry.

Step 6 — Authorize and verify

Once the debug shows both sides presenting the correct certificates, the device will appear on FortiManager under Device Manager > Unauthorized Devices. Authorize it there.

If the FortiGate GUI shows "FortiManager certificate is not verified" at this stage, that's a separate, expected security step (introduced ~FortiOS 7.2.8): the FortiGate must explicitly confirm the FortiManager's serial number before trusting it.

  • Via GUI: Security Fabric > Fabric Connectors > Central Management — accept the serial number prompt.
  • Via CLI:
config system central-management
set type fortimanager
set serial-number <FortiManager Serial Number>
set fmg <FortiManager IP>
end

Step 7 — Confirm success

diagnose fdsm central-mgmt-status

Look for:

Connection status: Up
Registration status: Registered

And on FortiManager:

diagnose dvm device list

Look for conn: up and conf: in sync against your FortiGate's serial number.

Quick Reference: Root Causes Encountered

Symptom Cause Fix
No certificate sent by FortiGate Eval cert CN ≠ serial number Custom cert with correct CN
fgfm-peercert-withoutsn not found Removed in 7.2.10/7.4.6/7.6.2+ Use custom CA method instead
ca-cert parse error on FortiGate Field hidden until local-cert is set first Set local-cert before ca-cert
"unknown CA" alert FortiGate doesn't trust custom root CA yet Confirm ca-cert is set correctly
FortiManager still sees old eval cert from FortiGate local-cert didn't apply at protocol level Re-issue the set local-cert command
"FortiManager certificate is not verified" Separate serial-number confirmation step (~7.2.8+) Accept/set expected FMG serial number