🚨 Sistem Yöneticileri İçin Son Çağrı: Secure Boot 2023 Sertifika Güncelleme İşlemleri

Microsoft’un 10 yıllık Secure Boot sertifikaları Haziran 2026‘dan itibaren emekli olmaya başlıyor. Eğer sunucularınızda manuel tetikleme yapmadıysanız, “Enforcement Phase” (Zorunlu Uygulama) aşamasında boot sorunları yaşamanız an meselesi.

Aşağıdaki rehber ile mevcut durumunuzu sorgulayabilir ve gerekli bir işlem varsa aşağıdaki yöntemler ile aksiyon alabilirsiniz.

🔍 1. Adım: Durum Analizi (Durumu Gösteren Script)

Bu PowerShell betiği; sistemin modunu, Secure Boot durumunu ve sertifikaların güncelliğini kontrol ederek size net bir “Aksiyon Gerekli mi?” raporu sunar:

PowerShell scripti yönetici olarak çalıştırmanız gerekiyor.

$Firmware = Get-ComputerInfo -Property "BiosFirmwareType"

if ($Firmware.BiosFirmwareType -ne "Uefi") {
    Write-Host "[!] Sistem Legacy BIOS. Güvenli önyükleme kullanılmıyor, işleme gerek yok." -ForegroundColor Yellow
} else {
    if (-not (Confirm-SecureBootUEFI)) {
        Write-Host "[!] Sistem UEFI ama Secure Boot KAPALI. Gelecekte açılacaksa müdahale gerekir." -ForegroundColor Gray
    } else {
        # Sertifika ve Reg Kontrolleri
        $dbBytes = (Get-SecureBootUEFI db -ErrorAction SilentlyContinue).bytes
        $kekBytes = (Get-SecureBootUEFI KEK -ErrorAction SilentlyContinue).bytes

        $dbMatch = $false
        $kekMatch = $false

        # Byte dizisi boş gelmezse eşleşme kontrolü yap (Hataları önlemek için)
        if ($dbBytes) { $dbMatch = [System.Text.Encoding]::ASCII.GetString($dbBytes) -match 'Windows UEFI CA 2023' }
        if ($kekBytes) { $kekMatch = [System.Text.Encoding]::ASCII.GetString($kekBytes) -match 'Microsoft Corporation KEK 2K CA 2023' }
        
        $regPath = "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing"
        $regStatus = (Get-ItemProperty -Path $regPath -ErrorAction SilentlyContinue).UEFICA2023Status
        $regCapable = (Get-ItemProperty -Path $regPath -ErrorAction SilentlyContinue).WindowsUEFICA2023Capable

        # --- BİLGİLENDİRME ÖZETİ ---
        Write-Host "`n--- Sistem Durum Özeti ---" -ForegroundColor Cyan
        
        if ($dbMatch) { Write-Host "DB      : $dbMatch -> Windows güncellemeyi yüklemiş demektir." }
        else { Write-Host "DB      : $dbMatch" }
        
        if ($kekMatch) { Write-Host "KEK     : $kekMatch -> BIOS desteği mevcut." }
        else { Write-Host "KEK     : $kekMatch" }

        Write-Host "Status  : $regStatus"
        Write-Host "Capable : $regCapable"
        Write-Host "--------------------------`n" -ForegroundColor Cyan

        # YENİ MANTIKSAL KONTROLLER
        
        # 1. Durum: Capable 2 ise (Zaten Güncel)
        if ($regCapable -eq 2) {
            Write-Host "[✓] Sistem TAMAMEN GÜNCEL. Herhangi bir işlem yapmanıza gerek yok." -ForegroundColor Green
        }
        # 2. Durum: DB true, KEK true ve Status InProgress ise
        elseif ($dbMatch -and $kekMatch -and $regStatus -eq 'InProgress') {
            Write-Host "[i] Lütfen birkaç dakika bekleyip tekrar kontrol edin." -ForegroundColor Yellow
        }
        # 3. Durum: Capable 1 ancak Status NotStarted ise (Windows Update Patch'i eksik)
        elseif ($regCapable -eq 1 -and $regStatus -eq 'NotStarted') {
            Write-Host "[X] İşletim sistemine patch yüklediğinize emin olunuz!" -ForegroundColor Red
            Write-Host "    Update yapılmayan sunucularda task'ı çalıştırsak da olmuyor." -ForegroundColor Red
        }
        # 4. Durum: DB false ise
        elseif (-not $dbMatch) {
            Write-Host "[X] İşletim sistemi güncel değil. Aşağıdaki komutları çalıştırın:" -ForegroundColor Red
            Write-Host "`n    reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x5944 /f" -ForegroundColor Cyan
            Write-Host "`n    Start-ScheduledTask -TaskName `"\Microsoft\Windows\PI\Secure-Boot-Update`"" -ForegroundColor Cyan
            Write-Host "" 
        }
        # 5. Durum: DB true ancak KEK false ise
        elseif ($dbMatch -and -not $kekMatch) {
            Write-Host "[X] BIOS UEFI güncel değil." -ForegroundColor Red
            Write-Host "    Sanal makine (VM) ise kapatıp nvram dosyasını silerek deneyebilirsiniz." -ForegroundColor Yellow
        }
        # 6. Durum: Capable 1 ancak Status InProgress değilse (NotStarted durumu yukarıda elendiği için buraya düşmez)
        elseif ($regCapable -eq 1 -and $regStatus -ne 'InProgress') {
            Write-Host "[!] Lütfen registry değerlerini girip sonra start çalıştırınız." -ForegroundColor Yellow
            Write-Host "`n    reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x5944 /f" -ForegroundColor Cyan
            Write-Host "`n    Start-ScheduledTask -TaskName `"\Microsoft\Windows\PI\Secure-Boot-Update`"" -ForegroundColor Cyan
            Write-Host ""
        }
        # 7. Durum: Diğer ara durumlar
        else {
            Write-Host "[i] Güncelleme süreci arka planda devam ediyor olabilir veya yeniden başlatma bekleniyor." -ForegroundColor Magenta
        }
    }
}





📅 Neden Şimdi? Kritik Sertifika Takvimi

Süresi Dolan SertifikaSon KullanmaYeni Sertifika (2023)KonumAmaç
Microsoft KEK CA 2011Haziran 2026Microsoft KEK 2K CA 2023KEKDB ve DBX imzalarını doğrular.
MS Windows PCA 2011Ekim 2026Windows UEFI CA 2023DBWindows Bootloader imzalar.
Microsoft UEFI CA 2011Haziran 2026Microsoft UEFI CA 2023DB3. parti bootloader & EFI app.
Microsoft UEFI CA 2011Haziran 2026MS Option ROM UEFI 2023DB3. parti Option ROM imzalar.

🛠️ 2. Adım: Uygulama ve Hızlandırma

Eğer sisteminiz güncel değilse, aşağıdaki adımları sırasıyla uygulayın:

Birinci yöntem olarak aşağıdaki registry değerini girerek 2 kez reboot edebilirsiniz.

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name "AvailableUpdates" -Value 0x1 -Type DWord

Diğer yöntem olarak 1 reboot ile yapmak için aşağıdaki işlemler izlenebilir.

  1. Registry ile değişikliğe zorlamak:
    • reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x5944 /f
  2. DB Güncellemesini Başlatın:
    • Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"
  3. Sunucuyu Yeniden Başlatın
  4. KEK Senkronizasyonunu Tetikleyin (Reboot Sonrası):
    • Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"

📊 3. Adım: Başarı Doğrulama (Event Log)

İşlemin sonucunu aşağıdaki PowerShell satırı ile loglardan teyit edebilirsiniz.:

PowerShell

Get-WinEvent -FilterHashtable @{LogName='System'; Id=1808, 1034, 1801} -MaxEvents 10 | Select-Object TimeCreated, Id, Message
  • 1808 & 1034: Başarılı.
  • 1801: Hata! Firmware güncel olmayabilir veya BIOS yazma koruması devrede olabilir. Kritik notlarda çözümlere bakabilirsiniz..

🔍4. Tekrar Doğrulama (Powershell)

İlk başta çalıştırdığımız scripti tekrar çalıştırarak kontrol edebilirsiniz.


💡 Kritik Notlar

  • BIOS Update: Eğer 1801 hatası alıyorsanız, önce donanım üreticinizin en güncel BIOS/Firmware sürümünü yükleyin.
  • VMware: KEK yükseltme hatası alırsanız sanal makineyi kapatıp .nvram dosyasını silin. Dikkat bu işlem sanal sunucunun bios ayarlarını sıfırlayacaktır. Çözülmezse son çare olarak .vmx dosyasına uefi.allowAuthBypass = "TRUE" ekleyebilirsiniz.
  • Geri Dönüş Yok: DBX güncellendikten sonra eski (2023 öncesi) kurulum medyalarıyla sistemi boot edemezsiniz. ISO’larınızı güncellemeyi unutmayın!

Kaynaklar:

Gemini
https://support.microsoft.com/tr-tr/topic/windows-g%C3%BCvenli-%C3%B6ny%C3%BCkleme-sertifikas%C4%B1-s%C3%BCre-sonu-ve-ca-g%C3%BCncelle%C5%9Ftirmeleri-7ff40d33-95dc-4c3c-8725-a9b95457578e

https://knowledge.broadcom.com/external/article/423919

Daha detaylı powershell içerikleri için bakılabilir.
https://github.com/cjee21/Check-UEFISecureBootVariables