我对这个从OpenSSL 上的其他清晰教程生成自签名证书的命令有点困惑:
openssl req \
-x509 -nodes -days 365 -sha256 \
-newkey rsa:2048 -keyout mycert.pem -out mycert.pem
我知道这会生成对自签名 x509 证书的请求,而不是由 CA 签名的证书请求,但是私钥在生成的证书文件中,对我来说听起来很狡猾,因为私钥不应该被发送与证书。
这是一个错误还是应该如何工作?
我对这个从OpenSSL 上的其他清晰教程生成自签名证书的命令有点困惑:
openssl req \
-x509 -nodes -days 365 -sha256 \
-newkey rsa:2048 -keyout mycert.pem -out mycert.pem
我知道这会生成对自签名 x509 证书的请求,而不是由 CA 签名的证书请求,但是私钥在生成的证书文件中,对我来说听起来很狡猾,因为私钥不应该被发送与证书。
这是一个错误还是应该如何工作?
它不会与证书一起发送。
证书和文件不是一回事。TLS 软件从不按原样将实际文件发送到任何地方——它读取文件、解释其内容并加载它想要加载的数据。当您有一个包含多个项目的 PEM 格式文件时,程序很容易知道一个项目何时结束,另一个项目何时开始。
在这种情况下,使用您的 .pem 文件的程序将从其中加载一个“证书”对象和一个“私钥”对象,之后原始源不再相关 - 它可能是单个 .pem 文件,两个单独的 .pem 文件、一个 DER .crt 文件、一个 PKCS#12 .pfx 文件,甚至根本就没有一个文件。该程序只关心现在在内存中的实际证书——如果它需要发送一个证书,它只会发送那个。