Вопрос или проблема
У меня есть ноутбук Dell 3140 с UEFI и Windows 11.
Я скачал новый сертификат windows uefi ca 2023.crt
с сайта Microsoft.
Я хочу добавить его к переменной ‘db’. UEFI предлагает необходимый интерфейс. Я включил Audit Mode
, а затем Custom Mode
в настройках прошивки, чтобы иметь возможность это сделать.
Смотрите скриншоты. Процесс кажется простым: выберите опцию 'db'
. Нажмите append from file
.
Выберите файл .crt и отправьте.
Дело в том, что после этого, кажется, ничего не происходит. Он просто возвращается к тому же экрану в настройках UEFI. Не сообщает об успехе или неудаче.
Загрузившись в Windows 11, я выполняю следующую команду PowerShell от имени администратора, и она возвращает False, указывая на то, что такой переменной в db нет.
[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match "Windows UEFI CA 2023"
Есть возможность экспортировать в файл. Я это делаю и снова ищу эту строку, но ее нет, что указывает на то, что добавление в db не сработало. Я также сравнил файлы ‘до’ и ‘после’, и они идентичны, что указывает на отсутствие изменений в db.
Я пробовал конвертировать .crt в base64 CER, а также в DER-кодированный CER, но результат тот же.
К сожалению, в Интернете нет никаких справок. Я не совсем уверен, что я упускаю.
Я также пробовал Deploy mode
, но ничего не изменилось.
Я также попытался сделать то же самое после отключения безопасной загрузки, но опять ничего не изменилось.
Версия UEFI последняя. Нет доступных обновлений.
Любые дальнейшие предложения будет очень полезно.
Просто обратите внимание, что я успешно сделал это на своем настольном ПК с UEFI материнской платы B550M.
Пожалуйста, считайте это очень большим комментарием с включенными скриншотами. Поэтому я использую пространство для ответа для этого.
На данный момент ни одна из моих попыток добавить это через настройки прошивки не удалась. Документация Dell также недостаточна по этому вопросу.
Тем не менее, из самой Windows, когда настройка Secure Boot была в Audit Mode
, мне удалось добавить в db
с помощью набора команд PowerShell.
Смотрите вывод, теперь у меня есть как PCA 2011
, так и CA 2023
в db
.
Но этот успех был недолговечным, так как прошивка UEFI на этом ноутбуке спроектирована так, что Audit Mode
эффективно отменяет безопасную загрузку (я смог запустить даже неподписанные бинарные файлы, несмотря на то, что безопасная загрузка была включена) и Deploy Mode
автоматически сбрасывает все ключи на значения по умолчанию. Поэтому, как только я переключился в Deploy Mode
, изменения (добавление в db), сделанные из Windows, были потеряны, и я получил обратно ключи по умолчанию в PK, KEK & db
.
Таким образом, пока я жду, есть ли способ сделать это из настроек прошивки, суть в том, что, как только вы возвращаетесь в Deploy Mode
, изменения теряются.
Ответ или решение
Для успешного выполнения задачи по добавлению сертификата в переменную ‘db’ в UEFI Firmware ноутбука Dell 3140, необходимо учитывать несколько ключевых аспектов, основываясь на представленном вами описании проблемы. Рассмотрим детально этот процесс, а также возможные причины, по которым вы не получаете ожидаемого результата.
1. Подготовка к добавлению сертификата
a. Файлы сертификатов
Убедитесь, что файл сертификата windows uefi ca 2023.crt
корректен и возможно ли его использовать. Важно проверить, что сертификат действительно поддерживается UEFI, а не просто является файлом с расширением .crt
.
b. Формат сертификата
Вы уже упомянули о попытках конвертации сертификата в различные форматы, такие как Base64 CER и DER. Однако стоит убедиться, что вы используете поддерживаемый формат и, если нужно, использовать утилиты, такие как OpenSSL для корректной конвертации.
2. Настройки UEFI
a. Режимы Secure Boot
Вы правильно отметили, что для успешного добавления сертификатов в ‘db’ необходимы активные режимы Audit Mode и Custom Mode. Убедитесь, что:
- Audit Mode активен: это позволяет временно обойти защиту Secure Boot для тестирования и добавления.
- Custom Mode позволяет добавлять измененные ключи и сертификаты, однако следует помнить, что изменения могут быть сброшены при переходе в Deploy Mode.
b. Применение изменений
Когда вы добавляете сертификат через интерфейс UEFI, рекомендуется внимательно отслеживать, завершен ли процесс с указанием успешного завершения. Если интерфейс не дает никаких сообщений о статусах, возможно, стоит попробовать следующие дополнительные шаги:
- Выключить ноутбук и повторно включить его, затем вернуться в UEFI для проверки изменений.
- Попробовать различные USB-устройства для загрузки, на каждом устройстве может быть разная реакция BIOS/UEFI на внесённые изменения.
3. Альтернативные методы
Если вы не смогли добавить сертификат через интерфейс UEFI, но у вас уже есть работающее решение через PowerShell, это делает задачу несколько проще. Однако следует учитывать, что переключение в Deploy Mode может сбросить все изменения.
a. PowerShell команды
Если вы уже успешно добавили сертификат через PowerShell в Audit Mode, можно сохранить набор этих команд для дальнейшего использования каждый раз, когда вы переключаетесь в Deploy Mode. Например:
$Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Path\To\windows uefi ca 2023.crt")
$CertBytes = $Cert.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Cert)
$SecureBootDb = Get-SecureBootUEFI db
$SecureBootDb.Append($CertBytes)
Set-SecureBootUEFI db $SecureBootDb
4. Заключение
Важно понимать, что UEFI может иметь свои специфические ограничения и поведение на разных устройствах и моделях. Если добавление сертификата через интерфейс UEFI не увенчивается успехом после выполнения всех вышеуказанных шагов, вам следует рассмотреть вариант использования PowerShell для добавления сертификата, при этом создавая резервные копии и подготавливаясь к резкому сбросу при смене режимов Secure Boot.
Если у вас по-прежнему возникают трудности, рекомендуется обратиться в техническую поддержку Dell для получения более детализированной помощи с конкретным оборудованием.