Authentication

添加 CA 簽名的客戶端證書時出現 Firefox 錯誤消息

  • April 27, 2016

當我嘗試將證書添加到 Firefox 的“您的證書選項卡”時,我收到此消息。我之前由一個也是 CA 的伺服器生成並簽名它。

無法解碼文件。它不是 PKCS #12 格式、已損壞或您輸入的密碼不正確。

它要求我輸入密碼,然後提示此消息。怎麼了?我正在關注本教程

更新#1

我使用的命令:

openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -days 1024 -out rootCA.pem       
openssl genrsa -out device.key 2048     
openssl req -new -key device.key -out device.csr       
openssl x509 -req -in device.csr -CA rootCA.pem \
       -CAkey rootCA.key -CAcreateserial -out device.crt -days 500

添加的證書是 device.crt,在您的證書選項卡上有 Firefox 請求的 PKS12。我應該改變它的格式嗎?

1:確認證書文件的類型

聽起來您嘗試導入的文件實際上不是 .pk12 文件。我將執行此命令來確認您要導入的文件類型:

openssl pkcs12 -info -in keyStore.p12

您應該會看到以下內容:

Enter Import Password:
MAC Iteration 2048
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Bag Attributes
   localKeyID: 74 FF 2A 04 58 90 06 B5 A0 5C EF DA C0 9B 6C AD 91 BD 1F 54 
   friendlyName: [friendly name]
subject=/C=US/ST=NY/O=My Company/OU=dept/CN=blah.blah.com
issuer=/O=My Company/OU=dept/emailAddress=blah@blah.com/L=My Town/ST=NY/C=US/CN=blah.blah.com
-----BEGIN CERTIFICATE-----

!!!REMOVED CERTIFICATE!!!!

-----END CERTIFICATE-----
Certificate bag
Bag Attributes: <No Attributes>
subject=/O=My Company/OU=dept/emailAddress=blah@blah.com/L=My Town/ST=NY/C=US/CN=blah.blah.com
issuer=/O=My Company/OU=dept/emailAddress=blah@blah.com/L=My Town/ST=NY/C=US/CN=blah.blah.com
-----BEGIN CERTIFICATE-----

!!!REMOVED CERTIFICATE!!!

-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
Bag Attributes
   localKeyID: 74 FF 2A 04 58 90 06 B5 A0 5C EF DA C0 9B 6C AD 91 BD 1F 54 
   friendlyName: [friendly name]
Key Attributes: <No Attributes>
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----BEGIN ENCRYPTED PRIVATE KEY-----

!!!REMOVED CERTIFICATE!!!

-----END ENCRYPTED PRIVATE KEY-----

OP 執行上述命令並收到此錯誤:

your command didn't work 
3077953260:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1320: 3077953260:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:382:Type=PKCS12

這個錯誤告訴 OP 他們擁有的 .crt 文件不是 pkcs12/pfx 文件。

在這一點上,OP 分享了另一個問題:“無法使用 CA 根密鑰簽署 CSR ”,他們曾詢問過與同一問題相關的問題。

在閱讀了其中一條評論後,OP 實際上是在嘗試將 .crt 文件載入到 Firefox 中的對話框中,該對話框需要 pkcs12/pfx 格式的證書。請參閱下文了解如何將 .crt 轉換為 pkcs12/pfx 證書。

2. Firefox“你的證書”對話框

我在 Firefox 支持論壇上發現了這個問題,標題為:將.crt 格式的證書安裝到“您的證書”中,內容如下:

我有一個 .crt 格式的證書,需要在“您的證書”選項卡中。

Firefox 僅允許 .p12 和 .pfx 格式的證書。

如何將此證書導入“您的證書”選項卡?

我試圖看看我是否可以將 .crt 轉換為 .p12 但沒有運氣。(我能夠轉換為 .p7b 和 .spc 格式的相同證書)

由於聽起來您有一個 .crt 文件,您可以使用 openssl 將其轉換為 pkcs12/pfx 文件:

openssl pkcs12 -export -in certificate.cer -inkey privateKey.key \
     -out certificate.pfx -certfile CACert.cer

**注意:**在該範例中,CACert.cer 將是 CA 的 .crt 文件。該命令將您的 .crt 文件和 CA 的 .crt 文件混合到一個 pkcs12/pfx 文件中。

OP 執行了這個命令:

sudo openssl pkcs12 -export -in certs/device.crt -inkey private/device.key -out safaa.pfx -certfile certs/myca.crt

參考

引用自:https://unix.stackexchange.com/questions/73873