Secure Boot Platform Key on VMware VMs before June 2026

Secure Boot is a UEFI/EFI feature enabled in the BIOS and is not avaialble in the legacy boot mode so BIOS VM’s have no UEFI firmware stack, no certificate chains to manage on such VM’s.

However, Microsoft’s original Secure Boot certificates (issued in 2011) expire in June 2026 so the Windows Server requires updated 2023 KEK and DB certificates to continue booting with Secure Boot enabled after that date.

Windows VMs are supposed to pull down replacement certificates automatically via Windows Update but VMs created before ESXi 8.0.2 have a NULL Platform Key (PK) signature in their NVRAM that prevents the standard certificate enrollment process from working so this prevents UEFI configured VM’s from authenticating and getting updates to the Windows Update server.

VM firmwareSecure BootAffected or Not
BIOSN/ANo
EFIYesYes

Use PowerCLI to identify which EFI VMs have Secure Boot actually enabled

JavaScript
Connect-VIServer "vcsa8-home.ash.local" 
Write-Host "Gathering VM data..." -ForegroundColor Yellow

Get-VM | Where-Object { $_.Guest.GuestFamily -eq "windowsGuest" } |
    Select-Object Name,
        @{N="FirmwareType";      E={ $_.ExtensionData.Config.Firmware }},
        @{N="SecureBootEnabled"; E={ $_.ExtensionData.Config.BootOptions.EfiSecureBootEnabled }} |
    Sort-Object FirmwareType, Name 

Prepare the certificate ISO

Attach a new 128MB disk to VM, format as FAT32 and label disk as X; and then copy the WindowsOEMDevicesPK.der to the volume

Step 1 → Snapshot the VM and Shut the VM

Step 2 →Adduefi.allowAuthBypass = TRUEto VMX advanced parameter or use the powercli method https://github.com/vmanalyst/privatecloud

Step 3 → Enable Force EFI Setup under boot options or or use the powercli method https://github.com/vmanalyst/privatecloud

Step 4→ Power it back on — it boots directly into the UEFI setup menu.

Step 5 → Navigate UEFI menu: Enter Setup → Secure Boot Configuration

Step 6 → PK Options

Step 6 → PK Options → Enroll PK

Step 7 → select WindowsOEMDevicesPK.der from the File

Step 7 → select WindowsOEMDevicesPK.der from the File

Step 8 → select WindowsOEMDevicesPK.der from the File

Step 8 → Commit and Save

Step 9 → Shut the VM

Step 10 → Detach the 128 MB Disk

Step 11 → Removeuefi.allowAuthBypass = TRUE from VMX parameters or or use the powercli method https://github.com/vmanalyst/privatecloud

Step 12 → Reboot VM into the OS and Verify the PK is valid using the PowerShell check below before running snapshot delete.

Step 13 → Export the KEK file and analyse it via powershell

JavaScript
$kekData = (Get-SecureBootUEFI -Name KEK).Bytes
[System.IO.File]::WriteAllBytes("C:\KEK.bin", $kekData)

Step 14 → Verify signature using openssl

JavaScript


 awk  k3s-cp-01  ~  ❯ ls
1        k3s-state-backup-2026-04-18.db  KEK.bin                       

 awk  k3s-cp-01  ~  ❯ sig-list-to-certs KEK.bin KEK-cert
X509 Header sls=1560, header=0, sig=1516
file KEK-cert-0.der: Guid 77fa9abd-0359-4d32-bd60-28f4e78f784b
Written 1516 bytes

 awk  k3s-cp-01  ~  ❯ openssl x509 -inform DER -in KEK-cert-0.der -noout -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            61:0a:d1:88:00:00:00:00:00:03
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = US, ST = Washington, L = Redmond, O = Microsoft Corporation, CN = Microsoft Corporation Third Party Marketplace Root
        Validity
            Not Before: Jun 24 20:41:29 2011 GMT
            Not After : Jun 24 20:51:29 2026 GMT
        Subject: C = US, ST = Washington, L = Redmond, O = Microsoft Corporation, CN = Microsoft Corporation KEK CA 2011
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c4:e8:b5:8a:bf:ad:57:26:b0:26:c3:ea:e7:fb:
                    57:7a:44:02:5d:07:0d:da:4a:e5:74:2a:e6:b0:0f:
                    ec:6d:eb:ec:7f:b9:e3:5a:63:32:7c:11:17:4f:0e:
                    e3:0b:a7:38:15:93:8e:c6:f5:e0:84:b1:9a:9b:2c:
                    e7:f5:b7:91:d6:09:e1:e2:c0:04:a8:ac:30:1c:df:
                    48:f3:06:50:9a:64:a7:51:7f:c8:85:4f:8f:20:86:
                    ce:fe:2f:e1:9f:ff:82:c0:ed:e9:cd:ce:f4:53:6a:
                    62:3a:0b:43:b9:e2:25:fd:fe:05:f9:d4:c4:14:ab:
                    11:e2:23:89:8d:70:b7:a4:1d:4d:ec:ae:e5:9c:fa:
                    16:c2:d7:c1:cb:d4:e8:c4:2f:e5:99:ee:24:8b:03:
                    ec:8d:f2:8b:ea:c3:4a:fb:43:11:12:0b:7e:b5:47:
                    92:6c:dc:e6:04:89:eb:f5:33:04:eb:10:01:2a:71:
                    e5:f9:83:13:3c:ff:25:09:2f:68:76:46:ff:ba:4f:
                    be:dc:ad:71:2a:58:aa:fb:0e:d2:79:3d:e4:9b:65:
                    3b:cc:29:2a:9f:fc:72:59:a2:eb:ae:92:ef:f6:35:
                    13:80:c6:02:ec:e4:5f:cc:9d:76:cd:ef:63:92:c1:
                    af:79:40:84:79:87:7f:e3:52:a8:e8:9d:7b:07:69:
                    8f:15
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            1.3.6.1.4.1.311.21.1:
                ...
            X509v3 Subject Key Identifier:
                62:FC:43:CD:A0:3E:A4:CB:67:12:D2:5B:D9:55:AC:7B:CC:B6:8A:5F
            1.3.6.1.4.1.311.20.2:
                .
.S.u.b.C.A
            X509v3 Key Usage:
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Authority Key Identifier:
                45:66:52:43:E1:7E:58:11:BF:D6:4E:9E:23:55:08:3B:3A:22:6A:A8
            X509v3 CRL Distribution Points:
                Full Name:
                  URI:http://crl.microsoft.com/pki/crl/products/MicCorThiParMarRoo_2010-10-05.crl
            Authority Information Access:
                CA Issuers - URI:http://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt
    Signature Algorithm: sha256WithRSAEncryption
    Signature Value:
        d4:84:88:f5:14:94:18:02:ca:2a:3c:fb:2a:92:1c:0c:d7:a0:
        d1:f1:e8:52:66:a8:ee:a2:b5:75:7a:90:00:aa:2d:a4:76:5a:
        ea:79:b7:b9:37:6a:51:7b:10:64:f6:e1:64:f2:02:67:be:f7:
        a8:1b:78:bd:ba:ce:88:58:64:0c:d6:57:c8:19:a3:5f:05:d6:
        db:c6:d0:69:ce:48:4b:32:b7:eb:5d:d2:30:f5:c0:f5:b8:ba:
        78:07:a3:2b:fe:9b:db:34:56:84:ec:82:ca:ae:41:25:70:9c:
        6b:e9:fe:90:0f:d7:96:1f:e5:e7:94:1f:b2:2a:0c:8d:4b:ff:
        28:29:10:7b:f7:d7:7c:a5:d1:76:b9:05:c8:79:ed:0f:90:92:
        9c:c2:fe:df:6f:7e:6c:0f:7b:d4:c1:45:dd:34:51:96:39:0f:
        e5:5e:56:d8:18:05:96:f4:07:a6:42:b3:a0:77:fd:08:19:f2:
        71:56:cc:9f:86:23:a4:87:cb:a6:fd:58:7e:d4:69:67:15:91:
        7e:81:f2:7f:13:e5:0d:8b:8a:3c:87:84:eb:e3:ce:bd:43:e5:
        ad:2d:84:93:8e:6a:2b:5a:7c:44:fa:52:aa:81:c8:2d:1c:bb:
        e0:52:df:00:11:f8:9a:3d:c1:60:b0:e1:33:b5:a3:88:d1:65:
        19:0a:1a:e7:ac:7c:a4:c1:82:87:4e:38:b1:2f:0d:c5:14:87:
        6f:fd:8d:2e:bc:39:b6:e7:e6:c3:e0:e4:cd:27:84:ef:94:42:
        ef:29:8b:90:46:41:3b:81:1b:67:d8:f9:43:59:65:cb:0d:bc:
        fd:00:92:4f:f4:75:3b:a7:a9:24:fc:50:41:40:79:e0:2d:4f:
        0a:6a:27:76:6e:52:ed:96:69:7b:af:0f:f7:87:05:d0:45:c2:
        ad:53:14:81:1f:fb:30:04:aa:37:36:61:da:4a:69:1b:34:d8:
        68:ed:d6:02:cf:6c:94:0c:d3:cf:6c:22:79:ad:b1:f0:bc:03:
        a2:46:60:a9:c4:07:c2:21:82:f1:fd:f2:e8:79:32:60:bf:d8:
        ac:a5:22:14:4b:ca:c1:d8:4b:eb:7d:3f:57:35:b2:e6:4f:75:
        b4:b0:60:03:22:53:ae:91:79:1d:d6:9b:41:1f:15:86:54:70:
        b2:de:0d:35:0f:7c:b0:34:72:ba:97:60:3b:f0:79:eb:a2:b2:
        1c:5d:a2:16:b8:87:c5:e9:1b:f6:b5:97:25:6f:38:9f:e3:91:
        fa:8a:79:98:c3:69:0e:b7:a3:1c:20:05:97:f8:ca:14:ae:00:
        d7:c4:f3:c0:14:10:75:6b:34:a0:1b:b5:99:60:f3:5c:b0:c5:
        57:4e:36:d2:32:84:bf:9e

References

Manual Update of the Secure Boot Platform Key in Virtual Machines

VMware by Broadcom Missing PK-signed KEK #369

Verification of Secure Boot Certificate on Virtual Machines

(Visited 1,657 times, 1 visits today)

By Ash Thomas

Ash Thomas is a seasoned IT professional with extensive experience as a technical expert, complemented by a keen interest in blockchain technology.