需要一点帮助来生成 p12 证书

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

我需要一些帮助来使用 OpenSSL(或其他工具)生成 PKCS#12 文件。 一般来说,我使用 JDK 中的 keytool 和以下语法:

keytool -genkey -alias friendly_alias -keyalg RSA -keysize 2048 -storepass mypassword -storetype pkcs12 -keystore c:\my_cert.p12

但是我在OpenSLL中找不到类似的语法。

如有任何帮助,我将不胜感激

openssl certificate keytool pkcs#12 p12
2个回答
4
投票

Openssl 有

pkcs12
命令用于添加 PKCS#12 格式的证书。

您可以尝试类似的方法来模拟整个流程(尽管您可能已经有要在 pkcs12 捆绑包中导入的证书)

生成证书(仅适用于本示例)

如何使用 OpenSSL 生成自签名 SSL 证书

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

这应该创建 2 个文件,包含私钥的 key.pem 和包含 x509v2 证书的 cert.pem (请注意,此命令生成的 x509v2 证书有点旧,不应该使用。因为这个答案的动机不是为了展示如何生成有效的证书,我正在使用这个虚拟示例)

将上述密钥和证书添加到您的 pkcs12 捆绑包中

openssl pkcs12 -in cert.pem -inkey key.pem -out foo.p12 -export -name friendly_name

这两个步骤都将询问私钥密码和 pkcs12 容器密码,请记录这些密码。

验证证书已存储

openssl pkcs12 -in foo.p12 -nokeys -info

这应该打印出类似的内容

MAC Iteration 2048
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Bag Attributes
    localKeyID: 7E D3 2E ED 1A 3A 67 1E 90 4A AD 15 8D D9 C6 7A 11 EE E6 0A
    friendlyName: friendly_name
subject=/C=IN/ST=KA/CN=foo.example.com
issuer=/C=IN/ST=KA/CN=foo.example.com
-----BEGIN CERTIFICATE-----
MIIE5DCCAswCCQC/nYhnwGT1HzANBgkqhkiG9w0BAQsFADA0MQswCQYDVQQGEwJJ
    ---SNIPPED---
MkvKFwTL+ZQ=
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048

注意输出中的友好名称。


0
投票

我们需要 SSL 证书(扩展名为

.cer
.crt
的文件)和密钥证书(扩展名为
.key
的文件)来生成
.p12
文件。

运行此命令:

openssl pkcs12 -export -in certificate.cer -inkey certificate.key -name personal -out file.p12
  • -in certificate.cer
    :证书私钥
  • -inkey certificate.key
    :证书公钥。可能是一个
    .crt
    文件
  • -name
    :可以指定一个可选名称
  • -out
    : p12 openssl 命令将生成的文件名
© www.soinside.com 2019 - 2024. All rights reserved.