将RSA私钥/公钥转换为.p12



我需要将RSA Keypair转换为.p12,但我做不到。我尝试过使用openssl的不同方法,但仍然失败。

我有以下

-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----

-----BEGIN RSA PRIVATE KEY-----
....
-----END RSA PRIVATE KEY-----

我似乎错过了一些基本的东西。。。我从服务提供商那里得到的唯一东西是RSA公钥和私钥。targetlandscape仅支持.p12。

我试过

openssl pkcs12 -export -out DocusignPrivate.p12 -inkey DocusignPrivate.pem -in DocusignPublic.pem 

谢谢你的帮助!

致以最良好的问候Martin

这不是一个编程或开发问题,很可能会被投票否决,因为近年来随着许多其他堆栈的存在,SO变得更加严格。

PKCS12无法存储裸公钥;(相反(它存储X.509证书,该证书包含公钥。当您没有"真正的"CA颁发的证书时,通常的做法是创建一个伪(自签名(证书。有多种方法可以做到这一点,包括使用OpenSSL的几种方法,可能还有数百种现有的Q和A,但最简单的是

openssl req -new -x509 -key $privkey -days 365 -subj "/CN=somename" -out $cert
# adjust days if desired; depending on the software that will use this p12 
# and your version of openssl, may need to specify signing hash e.g. -sha256
#
# then use openssl pkcs12 -export -inkey $privkey -in $cert -out $p12

我也遇到了类似的问题。在我的例子中,我能够通过首先创建一个P12,然后从中提取一个新的pem文件来获得pem。我使用了以下命令(在env变量中替换FQHN(:

export FQHN=DocusignPrivate
openssl pkcs12 -inkey ${FQHN}_private.key -in $(FQHN}.cer -export -out ${FQHN}.p12
openssl pkcs12 -in ${FQHN}.p12 -out ${FQHN}.pem -nocerts -nodes

文件中的更多内容。编辑文件以删除-----BEGIN PRIVATE KEY-----之前的前三行。

注意:我手动输入了命令,所以可能有打字错误。。。因此,如果有人也能测试这些命令,我将不胜感激——或者我稍后会尝试。此外,这假设.cer文件是您已签名的X509证书。

作为一个简单的检查,我使用这个命令来输出一些信息:openssl rsa -in ${FQHN}.pem -noout -text

帽子提示:我按照步骤回答了这个问题。

最新更新