【问题标题】:Extracting and placing keys from a p12 certificate从 p12 证书中提取和放置密钥
【发布时间】:2013-10-18 07:05:46
【问题描述】:

我有一个嵌入式设备,需要通过 wpa2 企业加密连接到路由器。
我需要替换文件cacert.h , client-cert.h and client-key.h.代码中的默认证书@密钥和证书必须如此硬编码。
我拥有一个client.p12 文件,其内容需要分布在这三个文件或其任意组合中。
谁能告诉我如何从client.p12 文件中提取上述密钥以及提取后哪些密钥去哪里?

【问题讨论】:

  • 您想通过 openssl 工具还是 openssl API(通过 C 程序)解决?
  • 我需要将证书与 p12 证书分开,尽管这是主要问题。

标签: c openssl embedded wifi freertos


【解决方案1】:

您可能需要使用 openssl pkcs12 命令。请参考其page

要将 PKCS #12 文件(p12 文件)解析为密钥和证书,请使用以下命令

openssl pkcs12 -in client.p12 -out client.pem

client.pem 将有证书(因为它也有证书链)和私钥。所有都将采用 PEM 格式。您可以使用一些实用程序来读取内容并在它们以 -----BEGIN 开头时将它们分开。

它还会询问密码(用于私钥)并输入此 p13 文件的密码。

如果您只想提取证书,请使用以下命令。

openssl pkcs12 -in client.p12 -clcerts -out cert.pem

这里,cert.pem 将只有客户端证书。

希望对你有帮助。

【讨论】:

  • 你能告诉我关于客户端密钥的事吗
  • @dev-null_to_dev_full:第一个命令openssl pkcs12 -in client.p12 -out client.pem 也在client.pem 中输出私钥。您可以从文件中提取私钥。
  • 最后一个问题,你如何从同一件事中得到一个叫做 cacert 的东西??
  • 在第一个命令的情况下,它也输出CA证书。否则,您可以使用 -cacerts 选项将 CA 证书文件输出到不同的文件中。
  • 我试过openssl pkcs12 -in cert.pfx -cacerts -out test.pem。它对我有用。 test.pem 包含 CA 证书。
猜你喜欢
  • 2011-04-02
  • 1970-01-01
  • 2013-07-07
  • 1970-01-01
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 2013-07-05
  • 2023-03-30
相关资源
最近更新 更多