我想将由CA签名的OpenSSH证书打包到pfx文件中。据我所见,我需要我的私钥和证书的格式在PEM。我使用ssh-keygen来生成rsa私钥和公钥。当我创建OpenSSH证书时,私钥已经是OpenSSH格式,它是OpenSSH格式,而不是PEM编码。
我想使用pkcs12 -export命令来生成私钥和证书的pkcs12包,但不能加载证书。
我知道我需要证书在pem中,我也需要在-in文件中提供CA证书,但是证书不在PEM中,即使我强制将它放在PEM中,它也不承认它。
有没有人打包过由CA签名的OpenSSH证书(不是x.509) (尽管自签名也不适合我)和pfx文件的私钥?
如果是,可以给出来自密钥生成的确切命令,包括证书生成和pfx文件的创建吗?
谢谢,我已经找了好几天了,却没有得到适当的答复。
发布于 2019-01-30 11:47:23
OpenSSH和x509格式不兼容。您需要使用openssl创建一个私钥+ CSR。在你发送CSR之后(不是钥匙!)对于CA,它们将返回一个签名证书,您可以将该证书与私钥组合到pfx容器中。
openssl genrsa -out 2019-www_server_com.key 2048openssl req -new -key 2019-www_server_com.key -out 2019-www_server_com.csr创建PFX容器。
openssl pkcs12 -export -out 2019-www_server_com.pfx -inkey 2019-www_server_com.key -in yourcertificate.crt发布于 2019-12-31 02:10:51
简而言之,您可以使用现有的RSA私钥(我还没有尝试其他类型,如ECDSA),但是,您需要生成一个带有适当X.509扩展名的OpenSSL的证书,以便将其打包到PFX/PKCS12 12文件中。以下是我尝试过的成功之处:
首先,如果您希望您的证书由CA签名,则生成一个CSR。如果没有,只需跳到下一个命令以生成一个自签名证书。
openssl req -key .ssh/id_rsa -new -out .ssh/id_rsa.csr注意:如果您对SSH密钥使用密码,系统将提示您输入它。CSR (对CA的签名请求)将输出到.ssh。这假设您希望使用. .ssh/id_rsa作为您的私钥。
或者,只生成一个自签名证书。和以前一样,如果SSH密钥是密码保护的,系统将提示您输入SSH密钥密码:
openssl req -key .ssh/id_rsa -new -x509 -days 365 -out .ssh/id_rsa.crt注:上述命令将证书有效期设置为1年(365天)。根据需要调整。对于OpenSSH来说,这在很大程度上是无用的,因为如果您想要逆转这个过程,它将忽略x.509数据,包括证书过期。
现在您已经拥有了带有正确x.509元数据(id_rsa.crt)的证书,您可以像往常一样将它与私钥一起打包:
openssl pkcs12 -inkey .ssh/id_rsa -in .ssh/id_rsa.crt -export -out .ssh/id_rsa.pfx文件名既可以是.pfx,也可以是.p12,格式相同,AFAIK。请注意,此命令将首先向您询问SSH私钥密码,然后它将两次提示您输入PFX/PKCS12 12导出密码。
如上所述,要在OpenSSH中重用PFX/PKCS12 12文件,首先需要从PFX/PKCS12 12存档中提取并转换私钥,然后使用ssh-keygen从私钥派生OpenSSH公钥。我不知道你为什么这么做,但希望上面的话能帮上忙.
最后一件事:我发现数字海洋的OpenSSL指南是相当全面的。它不仅为您提供了复制粘贴的盲目命令,还解释了每个命令所做的工作。
https://serverfault.com/questions/951476
复制相似问题