CA(证书颁发机构)从 CSR 提供​​什么?

CA(证书颁发机构)从 CSR 提供​​什么?

我需要 HTTPS 服务器的 SSL 证书。我想提供自签名证书和 CA 签名证书之间的选择。

我可以使用以下 OpenSSL 命令生成自签名 SSL 证书:

openssl req -newkey rsa:512 -x509 -days 365 -nodes -out cert.pem -keyout cert.pem
openssl dhparam -inform pem -in cert.pem -outform pem -out dhparam.pem 512
cat dhparam.pem >> cert.pem 

如果我想要一个 CA 签名的证书,我可以生成一个 CSR(证书签名请求):

openssl req -newkey rsa:512  -nodes -out cert.csr -keyout cert.key

并将其发送给一个 CA。然后呢?我想知道 CA 发回的是什么:只有证书,还是证书DH 参数,因为它们用于浏览器和服务器之间的协商?

[曾是在 StackOverflow 上提问]


编辑:似乎 CA 只提供证书,这意味着我需要连接

  • 私钥
  • 证书
  • DH 参数

有人可以确认一下吗?

答案1

是的,证书颁发机构会接受您的证书签名请求并生成签名证书,然后您可以在自己的网站上使用该证书。DH 参数不是特定于证书的,因此 CA 无需参与其中,并且显然会将您的密钥发送给任何人这是一个坏主意。

答案2

证书只是一个数字签名,可以“验证”您的公钥值(CN、OU、有效期等),并可验证是否由 CA 制作。我不确定您的“连接”评论,但您基本上说对了。

其余所有内容均在您这边设置和指定 - 私钥(在您的服务器上保密)、公钥(发送给每个请求它的人)和 SSL 协商参数(由您的 Web 服务器软件设置)。

(根据我的经验,由于密钥、签名、证书、CSR 等可以存储在各种不同的文件格式中,因此经常会出现混淆。)

相关内容