Hello,
You only need to allow outbound HTTPS (TCP 443) from the KMS host VM to Microsoft’s activation service at kms.core.microsoft.com for the initial activation of the KMS host key. After that, the KMS host does not require ongoing internet access; all subsequent client activations and renewals happen entirely on your internal network over TCP 1688.
When you activate a KMS host key on Windows Server 2025, the host contacts Microsoft’s activation servers once to validate the CSVLK (Customer Specific Volume License Key). This communication is strictly outbound, encrypted over port 443, and directed to kms.core.microsoft.com. There are no additional endpoints or IP ranges you need to whitelist. Microsoft does not publish static IPs for this service, so the best practice is to configure a FortiGate FQDN address object for kms.core.microsoft.com and allow outbound TCP 443 from the KMS host VM. SSL inspection is not required, and in fact can interfere with activation, so you should exempt this traffic from deep inspection.
Once the host key is activated, the KMS host functions autonomously inside your network. KMS clients (your Windows Server VMs) discover the host via DNS SRV records (_VLMCS._TCP) and activate against it using TCP 1688. The activation validity interval is 180 days, and clients attempt renewal every 7 days by default. These renewals are strictly client-to-host traffic on your internal LAN; the KMS host does not need to recontact Microsoft for each renewal. The only time you would need outbound access again is if you reinstall the KMS host or change the host key and need to re-activate it.
In FortiGate, the recommended configuration is to create an FQDN address object for kms.core.microsoft.com, apply it in a firewall policy allowing outbound TCP 443 from the KMS host VM only, and keep the rule disabled after successful activation if you want to enforce a one-time activation policy. If you prefer to leave it enabled, it will not harm security since the traffic is minimal and only to Microsoft’s activation endpoint.
To summarize: whitelist kms.core.microsoft.com over TCP 443 for the KMS host VM, allow TCP 1688 internally for client-to-host activation, and no periodic outbound internet access is required beyond the initial activation.
I hope you've found something useful here. If it helps you get more insight into the issue, it's appreciated to accept the answer. Should you have more questions, feel free to leave a message. Have a nice day!
HL.