Ich habe ein Asus X200MA-Notebook mit Windows 8.1 64bit. Ich habe shellx64.efi so eingerichtet, dass es unter Secure Boot läuft. Die Datei ist mit meinem eigenen Schlüssel signiert (erstellt mit OpenSSL) und läuft einwandfrei, wenn der öffentliche Schlüssel im .cer-Format an die Zertifikatsdatenbank angehängt wird. Die UEFI-Setup-Option akzeptiert auch das .crt-Zertifikatsformat, aber damit läuft shellx64.efi einfach nicht.
Was ist der Unterschied zwischen den Formaten .crt und .cer, wenn es um öffentliche Schlüsselzertifikate geht? Warum schlägt die Ausführung des Secure Boot EFI mit einem .crt-Zertifikat fehl, während sie mit einem .cer-Zertifikat problemlos läuft?
In der Inline-Hilfe zum Setup des UEFI Secure Boot wird erwähnt, dass Public Key-Zertifikate in den Formaten EFI Signature List / CERT X.509 (der encoded) / CERT RSA2048 (bin) oder CERT SHA256 (bin) akzeptiert werden.
Danke.
Antwort1
Es gibt keinen Unterschied – keine der Erweiterungen ist tatsächlichdefiniertetwas Bestimmtes zu bedeuten, und meistens bedeuten sie dasselbe.
X.509-Zertifikate haben nur ein „Haupt“-Speicherformat, nämlichDER. Es kann jedoch Base64-kodiert (auch PEM-kodiert) sein oder nicht (raw DER). Eine .crt
Datei kann wirklichentweder.
Schauen Sie sich also zunächst den Inhalt der Dateien an. Wenn sie mit " -----BEGIN CERTIFICATE
" beginnen, handelt es sich um eine PEM-codierte DER-Datei. Wenn sie rohe Binärdaten enthalten, handelt es sich höchstwahrscheinlich um eine rohe DER-Datei.
(Manchmal werden mehrere X.509-Zertifikate in eine Art PKCS#7-Datei gepackt, diese hat jedoch fast immer ein .p7b
oder .pkcs7
oderetwasähnlich wie die Erweiterung.)