Answers:
您可以在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)
-nocerts
仅输出私钥或添加-nokeys
仅输出证书。”
这是因为您没有该证书的相应私钥。
在密码学中,PKCS#12是捆绑密钥格式,通常用于将私钥与其X.509证书一起存储。在这里查看Wikipedia上的更多信息。
如果您在浏览器中拥有属于它的私钥,则只能导出PKCS#12格式的证书。它必须位于您用于生成密钥签名证书的同一台计算机和同一浏览器上。有关更清晰的解释,请参阅CaCert的知识库文章:
“ 你的密钥包含在称为密钥”store“的东西中。你可以将你的商店中的公钥/私钥对导出到一个文件中,并且可选地(但强烈推荐!)用密码来保护它们。这通常是通过进入浏览器的“管理证书”部分(即Firefox),然后执行密钥的“备份”。这将创建一个带有.P12或.PFX后缀的文件。
“