如何使用 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 创建公钥和私钥?的主要内容,如果未能解决你的问题,请参考以下文章