У меня ноутбук Asus X200MA с Windows 8.1 64bit. Я настроил shellx64.efi для работы в режиме безопасной загрузки. Файл подписан моим собственным ключом (созданным с помощью openssl) и он отлично работает, когда открытый ключ формата .cer добавляется в базу данных сертификатов. Параметр настройки UEFI также принимает формат сертификата .crt, но с ним shellx64.efi просто не запускается.
В чем разница между форматами .crt и .cer, когда речь идет о сертификатах открытого ключа? Почему выполнение безопасной загрузки efi не может быть выполнено с сертификатом .crt и нормально работать с .cer?
Встроенная справка по настройке безопасной загрузки UEFI упоминает, что она может принимать сертификаты открытых ключей в форматах EFI Signature List / CERT X.509 (в кодировке der encoded) / CERT RSA2048 (bin) или CERT SHA256 (bin).
Спасибо.
решение1
Разницы нет – ни одно из расширений на самом деле неопределенныйне означают ничего конкретного, и в большинстве случаев они означают одно и то же.
Сертификаты X.509 имеют только один «основной» формат хранения, которыйДЕР. Однако он может быть закодирован в Base64 (он же PEM-код) или нет (сырой DER). Файл .crt
может быть действительноили.
Итак, сначала взгляните на содержимое файлов. Если они начинаются с " -----BEGIN CERTIFICATE
", у вас есть файл DER в кодировке PEM. Если они содержат необработанные двоичные данные, скорее всего, у вас есть необработанный файл DER.
(Иногда несколько сертификатов X.509 упакованы в некий файл PKCS#7, однако он почти всегда имеет .p7b
или .pkcs7
иличто-нибудьаналогично расширению.)