我有華碩 X200MA 筆記型電腦,運行 Windows 8.1 64 位元。我已設定 shellx64.efi 在安全啟動下運行。檔案是用我自己的金鑰(使用 openssl 建立的)簽署的,當 .cer 格式的公鑰附加在憑證資料庫中時,它運作正常。 UEFI 設定選項也接受 .crt 憑證格式,但 shellx64.efi 根本無法運作。
公鑰憑證的 .crt 和 .cer 格式有什麼不同?為什麼使用 .crt 憑證時安全啟動 efi 執行會失敗,而使用 .cer 時卻可以正常運作?
UEFI 安全啟動設定內嵌幫助提到它可以接受 EFI 簽章清單/CERT X.509(der 編碼)/CERT RSA2048(bin)或 CERT SHA256(bin)格式的公鑰憑證。
謝謝。
答案1
沒有差別 – 兩個擴充其實都不是定義的表示任何特定的事物,並且大多數時候它們表示相同的事物。
X.509 憑證只有一種「主要」儲存格式,即德。然而,它可以是 Base64 編碼(也稱為 PEM 編碼),也可以不是(原始 DER)。一個.crt
文件確實可以任何一個。
因此,首先看一下文件的內容。如果它們以「-----BEGIN CERTIFICATE
」開頭,則您有一個 PEM 編碼的 DER 檔案。如果它們包含原始二進位數據,則很可能您有一個原始 DER 檔案。
(有時多個 X.509 憑證被打包到某種 PKCS#7 檔案中,但它幾乎總是有一個.p7b
或.pkcs7
或某物與擴展名類似。