1

我已经对此进行了一些研究,但是仍然在连接这些点时遇到了一些麻烦,即当服务器在验证签名和根证书方面将其证书发送到客户端时究竟会发生什么。

  • 当你创建一个 CSR 时,它会生成一个私钥,然后你将它发送给 CA 以生成证书并对其进行签名,但是 CA 不使用它自己的私钥进行签名吗?那么您使用 CSR 生成的私钥有什么意义呢?

  • 当服务器将其证书发送给客户端进行验证时,客户端如何验证它是有效的 CA 证书。它有一组受信任的 CA 证书,好的 - 但它们究竟是如何用于验证它是使用服务器证书的签名和公钥签署服务器证书的有效 CA?比较哪些东西以确保它不是伪造的?

  • 加密您的内部自签名证书有什么意义吗?内部根证书怎么样?还是私钥是唯一值得加密的?

  • 例如,如果我们不为我们的 Web 服务(通过 SSL)保留加密数据的数据库,我们是否会在生成自签名证书后关心存储我们自己的私钥,如果我们这样做,他们为什么呢?

4

1 回答 1

3

创建 CSR 时,它会生成一个私钥

或者您已经生成了自己的私钥。

然后您将其发送给 CA 以生成证书并对其进行签名

您发送 CSR。你不发送你的私钥。它是私人的。你不把它发给任何人。

但是CA不使用它自己的私钥来签名吗?

是的。

那么您使用 CSR 生成的私钥有什么意义呢?

它与证书中包含的公钥配对,并且它是用于证明您并且只有您拥有该证书的过程的一部分,因为只有您可以使用该私钥生成数字签名,该私钥可以由证书中的公钥验证证书。

当服务器将其证书发送给客户端进行验证时,客户端如何验证它是有效的 CA 证书。它有一组受信任的 CA 证书,好的 - 但它们究竟是如何用于验证它是使用服务器证书的签名和公钥签署服务器证书的有效 CA?比较哪些东西以确保它不是伪造的?

通过验证其数字签名来验证证书本身;检查是否在有效期内;然后尝试使用证书的所谓签名者(“颁发者”)和集合中的受信任证书来形成证书链。

加密您的内部自签名证书有什么意义吗?

不,它们是公共文件。只有私钥是私有的,并且不在证书中。

内部根证书怎么样?

不。

还是私钥是唯一值得加密的?

是的。

例如,如果我们不为我们的 Web 服务(通过 SSL)保留加密数据的数据库,我们是否会在生成自签名证书后关心存储我们自己的私钥,如果我们这样做,他们为什么呢?

因为它是私人的。它是您身份的重要组成部分。如果你泄露它,其他人可以冒充你。

于 2015-04-07T23:19:40.003 回答