如何创建openssl公钥?

时间:2018-10-16 18:40:53

标签: openssl pkcs#12

我正在按照以下步骤使用openssl生成证书和pkcs12文件:

//Create key
openssl genrsa -aes256 -out mykey.key 2048

//Create csr
openssl req -config openssl.cnf -key mykey.key -new -sha256 -out mycsr.csr

//Create cert
openssl ca -config openssl.cnf -extensions usr_cert -days 375 -notext -md sha256 -in mycsr.csr -out mycert.pem

//Create pkcs12 file
openssl pkcs12 -export -in mycert.pem -inkey mykey.key -out myp12.p12 -name NAME -CAfile ca.pem -caname MYCA

虽然我可以使用生成的证书来连接到服务器,但对于实际创建的内容却感到困惑。我假设公钥/私钥对由证书本身和私钥表示,但是最近我读到,需要创建私钥才能创建csr。所以我的问题是:

1:公钥是在csr创建过程中隐式创建的吗?

2:如果创建了公钥,为什么我的pkcs12文件不需要它?还是我最初认为证书是公共密钥是正确的?

我问这个问题的主要重点是避免潜在地暴露我的私钥。感谢您提前提出任何答案。

1 个答案:

答案 0 :(得分:0)

您似乎可以在此线程上找到有关第一个问题的所有答案

Use RSA private key to generate public key?

关于第二个问题... X509证书不是公钥本身,但是X509证书将公钥绑定到身份(证书的主题)。 因此,当您创建pkcs#12文件时,您将在证书和私钥中放入证书,然后在命令中放入Certificate Autority证书。

我希望它能有所帮助。

Seba