OpenSSL/KeyTool - 如何从密钥库获取客户端 crt

OpenSSL/KeyTool - How to get client crt from keystore

我正在尝试为我的本地应用程序创建一个自签名证书以进行测试。 我设法创建了一个 p12 密钥库,从中生成了服务器证书和私钥。我的服务器启动正常。 我使用了 openssl 和 keytool。

客户端应用程序需要受信任的证书。

如何生成这个文件?我在网上试了很多都没有找到有用的东西。

你可以使用任何一个。

keytool -exportcert -keystore ksfile.p12 [-alias name] [-rfc] [-file file]

您可以使用 -export 的缩写 -exportcert。如果你省略 -file 输出到标准输出,你可以用通常的方式重定向或管道。如果不指定 -rfc 则输出为 DER;如果你这样做,输出是 PEM。 PEM 通常更适合复制到其他系统,尽管现在大多数导入证书的东西都可以接受 DER 或 PEM。如果您省略 -file 不重定向并因此输出到您的终端(控制台等),PEM 工作但 DER 总是不可用并且有时会搞砸您的 terminal/display/whatever.

See the manual.

openssl pkcs12 -in ksfile.p12 -nokeys -clcerts [-out file]

在 PEM 中输出证书(这里没有 DER 选项,尽管一些 other OpenSSL 函数有 DER 选项)。如果省略 -out 则输出为标准输出。 如果您在密钥库中只有一个条目,这将是正确的条目。如果您有多个条目,这将输出所有条目,您必须查看 'comments' 关于 friendlyname、issuer 和 subject 以确定正确的条目。

请参阅系统 man pkcs12 或最新版本 man openssl-pkcs12on the web 的手册页。