Microsoft’s original 2011 Secure Boot certificates are reaching end of life. The Microsoft Corporation KEK CA 2011 and Microsoft UEFI CA 2011 expire in June 2026. The Microsoft Windows Production PCA 2011 follows in October 2026. Your machine will not refuse to boot the moment a date passes, because UEFI firmware does not enforce certificate expiry. But devices that never receive the 2023 replacements lose the ability to get future boot-level security fixes. This guide shows how to check your current state and deploy the new certificates on Windows, Linux, and virtual machines.
Quick Takeaways
- Existing installs keep booting after expiry. The risk is a device stuck without future Boot Manager, DBX (revocation list), and shim updates.
- Three 2011 certificates are being replaced by 2023 equivalents in the KEK and db firmware variables.
- On Windows, check with
Confirm-SecureBootUEFIand the Servicing registry key. On Linux, usemokutilandfwupdmgr. - Suspend BitLocker and update your BIOS/UEFI firmware before forcing the certificate change.
| Certificate (expiring) | Firmware store | Replacement (2023) | Signs |
|---|---|---|---|
| Microsoft Corporation KEK CA 2011 (June 2026) | KEK | Microsoft Corporation KEK 2K CA 2023 | Updates to db and dbx |
| Microsoft UEFI CA 2011 (June 2026) | db | Microsoft UEFI CA 2023 and Microsoft Option ROM UEFI CA 2023 | Linux shim, third-party drivers, GPU option ROMs |
| Microsoft Windows Production PCA 2011 (Oct 2026) | db | Windows UEFI CA 2023 | Windows Boot Manager (bootmgfw.efi) |
Prerequisites
Before touching any firmware variables, complete this checklist:
- Back up the BitLocker recovery key. Run
manage-bde -protectors -get C:and store the 48-digit key off the machine. - Update your OEM BIOS/UEFI firmware. The KEK update must be signed by your hardware vendor’s Platform Key (PK). Old firmware may reject it.
- Install the latest cumulative Windows update. The certificate servicing logic ships through Windows Update.
- Create bootable recovery media (Windows installation USB or a Linux live USB).
- Open an elevated shell: PowerShell as Administrator on Windows,
sudoon Linux.
How Secure Boot Trust Works
Secure Boot uses four firmware databases, each stored as an EFI variable:
| Variable | Role | Who can modify it |
|---|---|---|
| PK (Platform Key) | Root of trust; authorizes KEK changes | OEM |
| KEK (Key Exchange Key) | Authorizes updates to db and dbx |
Holder of PK |
| db | Allowed signatures and certificates | Holder of KEK |
| dbx | Revoked hashes and certificates | Holder of KEK |
The chain runs top-down. Microsoft’s 2011 KEK lets Microsoft push db and dbx updates. Once it expires, Microsoft cannot sign new db entries with it. Devices need the 2023 KEK, which is delivered through an OEM-signed update.
Firmware doesn’t check certificate timestamps. Binaries signed before expiry continue to validate. New binaries, such as a future Boot Manager or a fresh Linux shim, will be signed only with the 2023 CAs. A machine without those CAs in db will reject them.
Step 1: Check Your Secure Boot Status on Windows
Confirm Secure Boot is enabled
Confirm-SecureBootUEFI
True means enabled. False means disabled. A “Cmdlet not supported on this platform” error means legacy BIOS/CSM boot, where this guide doesn’t apply.
You can also run msinfo32 and read Secure Boot State and BIOS Mode (should be UEFI).
Check whether the 2023 certificates are already present
# Is the new Windows UEFI CA 2023 in db?
[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match 'Windows UEFI CA 2023'
# Is the new KEK present?
[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI kek).bytes) -match 'Microsoft Corporation KEK 2K CA 2023'
-matchreturns True if the certificate string exists in the variable.Get-SecureBootUEFIreads the raw variable and requires elevation.
Read the servicing status
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" |
Select-Object UEFICA2023Status, UEFICA2023Error, WindowsUEFICA2023Capable
| Value | Meaning |
|---|---|
UEFICA2023Status = NotStarted |
Update not yet applied |
UEFICA2023Status = InProgress |
Update staged; a reboot is likely needed |
UEFICA2023Status = Updated |
New certificates deployed |
UEFICA2023Error ≠ 0 |
Update failed; see troubleshooting below |
WindowsUEFICA2023Capable = 2 |
Certificates in db and the boot manager is signed with the 2023 CA |
Key names and values can shift between Windows builds. Confirm against Microsoft’s current Secure Boot servicing documentation for your version.
Read the event log
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Microsoft-Windows-TPM-WMI'} -MaxEvents 30 |
Where-Object { $_.Id -in 1795,1796,1799,1801,1808 } |
Format-Table TimeCreated, Id, Message -Wrap
- 1801 means updated certificates are available but not yet applied.
- 1808 means the update completed successfully.
- 1795/1796 indicate firmware returned an error while writing a variable.
- 1799 means the Boot Manager signed with the 2023 CA was installed.
Step 2: Update the Certificates on Windows
Option A: Let Windows Update handle it (recommended)
Microsoft is rolling the update out in stages through cumulative updates. Install all pending updates, reboot twice, and re-run the checks above. Managed fleets can control the rollout through Group Policy, Intune, or the registry.
Option B: Trigger it manually
Suspend BitLocker for two reboots first:
Suspend-BitLocker -MountPoint "C:" -RebootCount 2
Then set the update flag and start the servicing task:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" `
-Name "AvailableUpdates" -Value 0x5944 -Type DWord
Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"
- AvailableUpdates = 0x5944 is a bitmask that requests all steps: add the 2023 CAs to
db, add the new KEK, and install the 2023-signed Boot Manager. - Secure-Boot-Update is the built-in scheduled task that processes the flag.
Reboot, wait a minute, reboot again, then verify:
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" | Select UEFICA2023Status
Expected result: Updated.
Option C: Enterprise deployment
For managed fleets, use your management tooling (Intune, Configuration Manager, Group Policy) and pilot on one hardware model per OEM. Firmware behavior varies widely by vendor and model. Stage in rings: pilot, 10%, 50%, 100%.
Step 3: Check and Update Secure Boot Certificates on Linux
Linux boots through shim, signed by the Microsoft UEFI CA. Your distribution’s shim, GRUB, and kernel chain depends on the firmware trusting that CA.
Check Secure Boot state
mokutil --sb-state
You should see SecureBoot enabled.
Inspect the db and KEK contents
sudo mokutil --db | grep -E "Subject:|Not After"
sudo mokutil --kek | grep -E "Subject:|Not After"
Look for Microsoft UEFI CA 2023 or Microsoft Corporation UEFI CA 2011 in db and Microsoft Corporation KEK 2K CA 2023 in kek. The alternative, from the efitools package:
sudo efi-readvar -v KEK
sudo efi-readvar -v db
Update through fwupd and LVFS
Many vendors distribute KEK and db updates through the Linux Vendor Firmware Service:
sudo fwupdmgr refresh --force
sudo fwupdmgr get-devices
sudo fwupdmgr get-updates
sudo fwupdmgr update
refresh --forcepulls fresh LVFS metadata.get-deviceslists devices, including the UEFI KEK and UEFI db pseudo-devices where supported.updateapplies pending updates and prompts for a reboot.
Update shim and GRUB packages
# Debian/Ubuntu
sudo apt update && sudo apt install --only-upgrade shim-signed grub-efi-amd64-signed
# RHEL/Rocky/Alma/Fedora
sudo dnf upgrade shim-x64 grub2-efi-x64
Distributions will ship shims signed with the 2023 CA. Install them after the firmware trusts the new CA, or confirm your distro handles both signatures during the transition.
Step 4: Verify the Result
| Check | Windows | Linux |
|---|---|---|
| Secure Boot on | Confirm-SecureBootUEFI |
mokutil --sb-state |
| 2023 CA in db | Get-SecureBootUEFI db string match |
mokutil --db |
| New KEK present | Get-SecureBootUEFI kek string match |
mokutil --kek |
| Update status | UEFICA2023Status = Updated |
fwupdmgr get-history |
| Clean boot | Reboot twice, no recovery prompt | Reboot, no shim error |
Comparison: Update Methods
| Method | Best for | Risk | Effort |
|---|---|---|---|
| Windows Update | Home users, small offices | Low | Minimal |
| Registry + scheduled task | Admins, test machines | Medium (BitLocker, firmware errors) | Moderate |
| OEM BIOS update | Machines with old firmware | Low to medium | Moderate |
| fwupd/LVFS | Linux desktops and servers | Low | Low |
| Manual key enrollment in BIOS | Custom or legacy hardware | High | High |
Troubleshooting and Real-World Scenarios
Scenario 1: UEFICA2023Error is non-zero, or Event 1795/1796 appears
The firmware rejected the variable write.
- Update BIOS/UEFI to the latest OEM release.
- Check the vendor’s advisory. Some models need a specific firmware revision before they accept the KEK update.
- Retry the task:
Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update". - If it still fails, the PK may be a test or custom key. Contact the vendor.
Scenario 2: BitLocker asks for the recovery key after reboot
Changing boot variables alters TPM PCR 7 measurements. Enter the recovery key, then run:
Suspend-BitLocker -MountPoint "C:" -RebootCount 1
Resume-BitLocker -MountPoint "C:"
This re-seals the key to the new measurements. Always suspend protection before manual updates.
Scenario 3: Linux fails with “bad shim signature” or “Verification failed: Security Violation”
The firmware does not trust the CA that signed the shim you are booting.
- Boot a live USB with Secure Boot temporarily disabled, or use a 2011-signed shim.
- Chroot into the install and reinstall
shim-signedorshim-x64. - Update firmware keys through
fwupdmgr, then re-enable Secure Boot.
Scenario 4: Virtual machines (Hyper-V, VMware, KVM)
VM templates created years ago carry old NVRAM with 2011 keys only.
- Hyper-V: use current Hyper-V host updates, which provide updated Secure Boot templates for new VMs. Existing Generation 2 VMs may need the KEK updated through the host.
- VMware: check Broadcom’s guidance for updating the NVRAM template or regenerating the VM’s NVRAM file.
- KVM/QEMU: use a recent OVMF package, then recreate the VM’s NVRAM variable store from the new template.
Scenario 5: Dual-boot Windows and Linux
Update Windows first, confirm Updated status, then update Linux shim packages. Keep a live USB in reach.
Scenario 6: Secure Boot disabled on a gaming PC
Anti-cheat software increasingly requires Secure Boot. Re-enable it in firmware and confirm the system boots in UEFI mode with a GPT disk. If msinfo32 shows BIOS Mode Legacy, convert with mbr2gpt /validate /allowFullOS, then mbr2gpt /convert /allowFullOS.
Revocation Is a Separate Step
Adding the 2023 certificates is not the same as revoking the 2011 Boot Manager. Revocation (adding the old PCA to dbx) permanently blocks older boot media, including Windows installation USBs and recovery discs built on the 2011 chain. Do not apply revocations until you have updated recovery media. Follow Microsoft’s published enforcement guidance and test on pilot machines first.
Fleet Audit Script
Run this across machines for a quick compliance report:
$sb = try { Confirm-SecureBootUEFI } catch { $false }
$db = [System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes)
$kek = [System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI kek).bytes)
[pscustomobject]@{
Computer = $env:COMPUTERNAME
SecureBoot = $sb
WinUEFICA2023 = $db -match 'Windows UEFI CA 2023'
UEFICA2023 = $db -match 'Microsoft UEFI CA 2023'
KEK2023 = $kek -match 'KEK 2K CA 2023'
}
Pipe the output to Export-Csv and collect results centrally.
FAQ
What happens if I don’t update my Secure Boot certificates?
Your PC keeps booting existing, already-signed software. But it can’t receive new boot-level security updates, DBX revocations, or newly signed Linux shims. Over time, the device falls behind on boot-chain protection and may fail to boot newly signed media.
Will my computer stop booting when the certificates expire?
No. UEFI firmware does not validate certificate expiration dates during Secure Boot checks. Problems appear later, when software signed only with the 2023 CAs hits a machine that lacks them.
How do I check if my Secure Boot certificates are updated?
On Windows, run Confirm-SecureBootUEFI, then search the db and kek variables for Windows UEFI CA 2023 and KEK 2K CA 2023 with Get-SecureBootUEFI. On Linux, run sudo mokutil --db and sudo mokutil --kek. Check UEFICA2023Status in the Servicing registry key for a summary on Windows.
Is it safe to update Secure Boot certificates manually?
Yes, with preparation. Back up your BitLocker recovery key, update the BIOS first, suspend BitLocker, and keep recovery media available. Test on one machine before rolling out broadly.




