openssl:如何使用私钥、关联公共证书以及直至根证书的证书链创建 .pem 文件?

openssl:如何使用私钥、关联公共证书以及直至根证书的证书链创建 .pem 文件?

出于测试目的(即全部自签名,而不是生产),我如何使用 openssl 创建一个包含私钥、相关公共证书以及一直到根证书的证书链的 PEM 文件?

答案1

您通常不会将私钥放在 PEM 中,因为私钥应该“静止”加密(在磁盘上),而 PEM 通常用于非加密对象。

您通常将私钥及其关联的证书链放在 .p12 / .pfx (PKCS#12) 文件中。

我认为它是这样的(读者警告:我自己还没有尝试过,YMMV):

openssl pkcs12 -export -in file.pem -inkey keyfile.pem -chain -out file.p12

答案2

将私钥(private 表示私有)放在 pem 文件中确实不安全。但如果您要按照程序执行此操作,风险很高,只能在受控/测试环境中使用。在生产中使用意味着“安全=我不知道这个词”。

a)首先创建公钥(cert.pem)和私钥(key.pem)的自签名密钥对

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days `echo 365*4|bc -l` -subj "/C=US/ST=Delaware/L=Delaware/O=SELFSIGNED/CN=`hostname -f`"

b)然后从 key.pem 中删除密码(当被要求输入上一个命令中选择的密码时)

openssl rsa -in key.pem -out newkey.pem && mv key.pem key.pem.old && mv newkey.pem key.pem

c)不是必需的,但 dhparam 是个不错的主意

openssl dhparam -out dhparams.pem 2048

d)最后我们创建 final.pem,其中包含公钥和私钥(原文如此!)

cat key.pem cert.pem dhparams.pem > final.pem

相关内容