如何使用 openssl 创建公钥和私钥?

Posted

技术标签:

【中文标题】如何使用 openssl 创建公钥和私钥?【英文标题】:How to create public and private key with openssl? 【发布时间】:2017-11-12 11:00:39 【问题描述】:

我的问题是如何在 Windows 中使用 OpenSSL 创建公钥和私钥,以及如何将创建的公钥放入 .crt 文件中,将私钥放入 .pcks8 文件中,以便使用这两个密钥进行签名Java 中的 SAML 断言?

提前致谢。

【问题讨论】:

你的问题有点不清楚。证书(通常存储在.crt 文件中的内容)包含公钥,但公钥本身并不是证书 @MathiasR.Jessen 我正在尝试在 opensaml-j 中创建一个凭据,后者需要一个公钥和私钥才能在签名中使用此凭据 您似乎有三个问题。第一个问题:How to generate RSA private key using OpenSSL? 第二个问题在Programmatically Create X509 Certificate using OpenSSL。第三个问题,另存为PKCS#8,只使用i2d_RSAPrivateKey_bio。 How to generate RSA private key using OpenSSL? 还提供了一个以所有格式编写的示例 您应该针对 SAML 签名提出一个单独的问题。您需要提供您的数据,并显示您的代码。 @jww 我没有三个问题,我只有一个你在评论中提到的关于证书的其他问题,我知道该怎么做 【参考方案1】:

您可以使用genrsa 上下文生成公私密钥对(最后一个数字是密钥长度,以位为单位):

openssl genrsa -out keypair.pem 2048

要提取公共部分,请使用rsa 上下文:

openssl rsa -in keypair.pem -pubout -out publickey.crt

最后,使用pkcs8 上下文将原始密钥对转换为PKCS#8 格式:

openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in keypair.pem -out pkcs8.key

【讨论】:

以上是关于如何使用 openssl 创建公钥和私钥?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用openssl生成RSA公钥和私钥对

通过 OpenSSL (c++) 以 XML (w3c) 格式保存 RSA 公钥和私钥

公钥和私钥怎么接独立站

使用openssl 生成RSA公钥和私钥

OpenSSL生成公私钥

openssl生成RSA公钥和私钥对