从firefox导出PKCS12格式的证书


5

我已将证书导入firefox,我想将其导出为PKCS12格式。我找到的唯一选项是PKCS7,PEM和DIR。而不是PKCS12。我怀疑证书没有私钥,所以有没有办法检查?

编辑我的问题出在Chrome浏览器中,我在申请证书时使用了该浏览器。它似乎存在存储私钥的问题。我用Firefox重复了这个请求,事情进展顺利。


1
您想要导出包含私钥的证书或个人证书吗?当我使用密钥导出个人证书时,我的Firefox会自动选择PKCS#12格式。
罗伯特

Answers:


4

您可以在Firefox
Tools -> Options -> Advanced -> Encryption -> View Certs -> Yours/Authority/etc -> <cert> -> View -> Details -> Certificate Fields -> Public Key)中查看证书内容

如果可以导出到PEM,则可以将其转换为PKCS12

# export mycert.pem as PKCS#12 file, mycert.pfx
openssl pkcs12 -export \
  -out mycert.pfx -in mycert.pem \
  -name "My Certificate"

更新:使用OpenSSL的示例

生成自签名证书

  $ openssl req \
  >   -x509 -nodes -days 365 \
  >   -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

查看它的内容

  $ openssl x509 -in mycert.pem -noout -text

查看PEM文件

  $ cat mycert.pem
  -----BEGIN RSA PRIVATE KEY-----
  MIICXAIBAAKBgQDa6JQOLkwoIGhTvcTSYX68Ddaq4hGk/61RSVELaVFJTNQYPB86
  …
  aPj0KoeFJ04/sLcZNZwGcC93rNA66xTICLtGbBXlM1U=
  -----END RSA PRIVATE KEY-----
  -----BEGIN CERTIFICATE-----
  MIICxTCCAi6gAwIBAgIJAOaxxgLFlypwMA0GCSqGSIb3DQEBBQUAMEwxCzAJBgNV
  …
  tz0TMEYxbGIscZbxeJxoK6pe5tOwXtdjStlcITzksdPV5rLp84aeJl4=
  -----END CERTIFICATE-----

请注意,虽然PEM文件可以包含私钥和证书,但私钥不是X.509证书的一部分。

如果FF导出的PEM缺少Base64编码数据周围的BEGIN和END标记,则OpenSSL无法读取PEM文件。

这是我从Firefox导出的CA证书(*在例如记事本中查看)

-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
…
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
-----END CERTIFICATE-----

(省略号...为简洁省略了数据)

我可以看到OK使用openssl x509 -in ff.crt -noout -text(我从Windows剪切并粘贴到Linux但你也可以在Windows上安装openssl)


如果我想将公钥和私钥与PEM证书分开提取到两个文件中,该怎么办:usercert.pem和userkey.pem?
Tarek

@Tarek你可以用OpenSSL做到这一点。请参阅madboa.com/geek/openssl/#cert-pkcs12sslshopper.com/article-most-common-openssl-commands.html “您可以添加-nocerts仅输出私钥或添加-nokeys仅输出证书。”
RedGrittyBrick

当我在你的答案中尝试命令时,我得到错误:无法加载私钥97345:错误:0906D06C:PEM例程:PEM_read_bio:无起始行:/SourceCache/OpenSSL098/OpenSSL098-35.1/src/crypto/pem/pem_lib.c :648:期待:任何私人密钥
Tarek

@Tarek:看到更新的答案,您可以使用openssl生成和查看自签名证书吗?您从FireFox导出的PEM文件的文本内容是什么?
RedGrittyBrick

3

这是因为您没有该证书的相应私钥

在密码学中,PKCS#12是捆绑密钥格式,通常用于将私钥与其X.509证书一起存储。在这里查看Wikipedia上的更多信息。

如果您在浏览器中拥有属于它的私钥,则只能导出PKCS#12格式的证书。它必须位于您用于生成密钥签名证书的同一台计算机和同一浏览器上。有关更清晰的解释,请参阅CaCert的知识库文章

你的密钥包含在称为密钥”store“的东西中。你可以将你的商店中的公钥/私钥对导出到一个文件中,并且可选地(但强烈推荐!)用密码来保护它们。这通常是通过进入浏览器的“管理证书”部分(即Firefox),然后执行密钥的“备份”。这将创建一个带有.P12或.PFX后缀的文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.