添加 CA 签名的客户端证书时 Firefox 出现错误消息

添加 CA 签名的客户端证书时 Firefox 出现错误消息

当我尝试将证书添加到 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

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/[email protected]/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/[email protected]/L=My Town/ST=NY/C=US/CN=blah.blah.com
issuer=/O=My Company/OU=dept/[email protected]/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

参考

相关内容