en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

使用OpenSSL从PKCS#12文件导出证书和私钥

本操作方法将引导您逐步使用OpenSSL从PKCS#12文件中提取信息。 PKCS#12(也称为PKCS12或PFX)是一种二进制格式,用于将证书链和私钥存储在单个可加密文件中。 PKCS#12文件通常用于在Windows和macOS计算机上导入和导出证书和私钥,并且通常具有文件扩展名 .p12 or .pfx.

如需更多有用的操作方法和最新的网络安全新闻,请在此处注册 SSL.com 的时事通讯:

什么是OpenSSL?
OpenSSL是一个非常有用的开源命令行工具包,可用于 X.509 证书,证书签名请求(CSRs)和加密密钥。 如果使用的是Linux或macOS之类的UNIX变体,则您的计算机上可能已经安装了OpenSSL。 如果您想在Windows上使用OpenSSL,则可以启用 Windows 10的Linux子系统 或安装 Cygwin的。 您也可以轻松地 创建信息图 一个带有openSSL的PKCS#12文件。

SSL.com提供了多种 SSL /TLS 服务器证书 用于HTTPS网站。

比较SSL /TLS 证书

视频

在下面显示的所有示例中,用您实际使用的文件名代替 INFILE.p12, OUTFILE.crtOUTFILE.key.

在屏幕上查看PKCS#12信息

要将PKCS#12文件中的所有信息转储到 PEM格式,请使用以下命令:

openssl pkcs12 -info -in INFILE.p12 -nodes

然后,将提示您输入PKCS#12文件的密码:

输入导入密码:

输入创建PKCS#12文件时输入的密码,然后按 enter。 OpenSSL会将文件中的所有证书和私钥输出到屏幕:

袋属性localKeyID:AC 3E 77 9A 99 62 84 3D 77 CB 44 0D F9 78 57 7C 08 28 05 97 subject = / CN = Aaron Russell/emailAddress=*********@gmail.com issuer = / C = US / ST =得克萨斯/ L =休斯顿/ O = SSL公司/ CN = SSL.com客户端证书中间CA RSA R1 ----- BEGIN CERTIFICATE ----- MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ncDCR6wxb9E0DWd4ATQMzxGTu / yE3kT + 9Ef6IY + n armh3HZUfan2Hb64YD0tjLMca / PC + sKAZu28gB / 3HQRHIFugvh6RO3bIoorl0jUg 1Ml2R83 ++ PRIVATE-SUHL0 ----

加密私钥

如果您想加密私钥并在输出之前使用密码对其进行保护,则只需省略 -nodes 来自命令的标志:

openssl pkcs12 -info -in INFILE.p12

在这种情况下,OpenSSL输出任何证书后,系统将提示您输入并验证新密码,并且私钥将被加密(请注意,密钥的文本以 -----BEGIN ENCRYPTED PRIVATE KEY-----):

输入PEM密码短语:验证 - 输入PEM密码短语:----- BEGIN加密的私有密钥----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGwhJIMXRiLQCAggA MBQGCCqGSIb3DQMHBAiXdeymTYuedgSCBMjwGg78PsqiNJLfpDFbMxL98u3tK9Cs ... SGVCCBj5vBpSbBXAGbOv74h4satKmAMgGc8SgU06geS9gFgt / wLwehMJ / H4BSmex 4S / 2tYzZrDBJkfH9JpggubYRTgwfAGY2BkX03dK2sqfu + QVTVTKMj2VI0sKcFfLZ BDW = ----- END ENCRYPTED私钥----

仅提取证书或私钥

如果只想输出私钥,请添加 -nocerts 到命令:

openssl pkcs12 -info -in INFILE.p12 -nodes -nocerts

如果只需要证书,请使用 -nokeys (由于我们不关心私钥,因此我们也可以安全地省略 -nodes):

openssl pkcs12 -info -in INFILE.p12 -nokeys

将证书和私钥保存到文件

您可以从PKCS#12文件中导出证书和私钥,并通过指定输出文件名将它们以PEM格式保存到新文件中:

openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt-节点

同样,系统将提示您输入PKCS#12文件的密码。 和以前一样,您可以通过删除 -nodes 从命令中标记和/或添加 -nocerts or -nokeys 仅输出私钥或证书。 因此,要生成私钥文件,我们可以使用以下命令:

openssl pkcs12 -in INFILE.p12 -out OUTFILE.key -nodes -nocerts

要创建仅包含证书的文件,请使用以下命令:

openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt -nokeys

将私钥转换为PKCS#1格式

上面的示例均以OpenSSL的默认值输出私钥 PKCS#8 格式。 如果你知道你需要 PKCS#1 相反,您可以根据密钥类型将OpenSSL的PKCS#12实用程序的输出传递到其RSA或EC实用程序。 以下两个命令都将以PKCS#1格式输出密钥文件:

RSA

openssl pkcs12 -in INFILE.p12-节点-nocerts | openssl rsa -out OUTFILE.key

ECDSA

openssl pkcs12 -in INFILE.p12-节点-nocerts | openssl ec -out OUTFILE.key

请注意: 您可以通过查看文本的第一行来区分PKCS#8和PKCS#1私钥文件之间的区别。 PKCS#1文件将指定算法:
-----BEGIN RSA PRIVATE KEY-----

PKCS#8文件未显示该算法,并且也可能被加密:
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----


感谢您选择SSL.com! 如有任何疑问,请通过电子邮件与我们联系 Support@SSL.com,致电 1-877-SSL-SECURE,或只需单击此页面右下方的聊天链接。

订阅 SSL.com 的时事通讯

不要错过SSL.com上的新文章和更新