将私钥存储在自签名证书中吗?

将私钥存储在自签名证书中吗?

我有点困惑这个命令如何从其他清晰的证书中生成自签名证书OpenSSL 教程

openssl req \
  -x509 -nodes -days 365 -sha256 \
  -newkey rsa:2048 -keyout mycert.pem -out mycert.pem

我知道这会生成一个自签名 x509 证书请求,而不是由 CA 签名的证书请求,但是私钥位于生成的证书文件中,并且听起来很可疑,因为私钥不应与证书一起发送。

这是一个错误还是应该如何工作?

答案1

我知道这会生成一个自签名 x509 证书请求,而不是由 CA 签名的证书请求,但是私钥位于生成的证书文件中,并且听起来很可疑,因为私钥不应与证书一起发送。

它不会发送并附有证书。

证书和文件不是一回事。TLS 软件永远不会将实际文件原封不动地发送到任何地方——它该文件,解释其内容,并加载它想要加载的数据。当您拥有包含多个项目的 PEM 格式文件时,程序很容易知道一个项目何时结束,另一个项目何时开始。

在这种情况下,使用 .pem 文件的程序将从中加载一个“证书”对象和一个“私钥”对象,此后原始来源不再相关 - 它可能是一个 .pem 文件、两个单独的 .pem 文件、一个 DER .crt 文件、一个 PKCS#12 .pfx 文件,或者甚至根本不是一个文件。该程序只关心现在内存中的实际证书 - 如果需要发送证书,它只会发送该证书。

相关内容