创建 .p12 文件

问题描述 投票:0回答:3

使用

openssl
,我创建了一个私钥,如下所示:

openssl genrsa -out myKey.pem

然后,为了生成 CA 要求的

csr
,我执行了以下操作:

openssl req -new -key myKey.pem -out cert.csr

CA 回复了我存储在名为

myCert.cer

的文件中的证书

我现在想将必要的组件(私钥、公钥(?)和证书)捆绑到一个

.p12
中。为此,我运行了以下命令:

openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in myCert.cer

但我收到以下错误消息:

No certificate matches private key

我怎样才能做到这一点?

openssl certificate pkcs#12
3个回答
149
投票

openssl
文档表示作为
-in
参数提供的文件必须采用PEM格式。

事实证明,与 CA 的手册相反,我存储在

myCert.cer
中的 CA 返回的证书不是 PEM 格式,而是 PKCS7

为了创建我的

.p12
,我必须首先将证书转换为PEM

openssl pkcs7 -in myCert.cer -print_certs -out certs.pem

然后执行

openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in certs.pem

46
投票

我正在调试使用名为 Prisma 的 ORM 通过 SSL 连接到数据库 (MySQL RDS) 时遇到的问题。数据库连接字符串需要 PKCS12 (.p12) 文件(如果感兴趣,请在here进行描述),这将我带到了这里。

我知道问题已经得到解答,但我发现以下步骤(在 Github Issue#2676 中)对于创建 .p12 文件很有帮助,并想分享。祝你好运!

  1. 生成2048位RSA私钥:

    openssl genrsa -out key.pem 2048

  2. 生成证书签名请求:

    openssl req -new -sha256 -key key.pem -out csr.csr

  3. 生成适合在 Web 服务器上使用的自签名 x509 证书。

    openssl req -x509 -sha256 -days 365 -key key.pem -in csr.csr -out certificate.pem

  4. 按照此处所述在 PKCS12 中创建 SSL 身份文件

    openssl pkcs12 -export -out client-identity.p12 -inkey key.pem -in certificate.pem


0
投票

在一行中,让我们生成它以进行 10 年验证

openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 3650 -keyout my.key -out my.pem;openssl pkcs12 -export -out my.p12 -inkey my.key -in my.pem

它将创建一个自签名证书 my.pem,使用 2048 长度的 RSA 密钥进行 3650 天的验证 my.key 输出 my.p12 实用程序文件

© www.soinside.com 2019 - 2024. All rights reserved.