【问题标题】:How exactly is a SSL certificate validated?SSL 证书究竟是如何验证的?
【发布时间】:2015-06-12 15:31:54
【问题描述】:

我已经对此进行了一些研究,但是在服务器将其证书发送到客户端以验证签名和根证书时,连接点仍然存在一些问题。

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

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

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

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

【问题讨论】:

    标签: ssl ssl-certificate verification private-key root-certificate


    【解决方案1】:

    当您创建 CSR 时,它会随之生成一个私钥

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

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

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

    但是 CA 不使用自己的私钥进行签名吗?

    是的。

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

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

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

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

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

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

    内部根证书怎么样?

    没有。

    还是只有私钥值得加密?

    是的。

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

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

    【讨论】:

    • 感谢您的详细回复!还有几个问题:虽然数字签名是如何验证的,这就是我想要理解的。此外,在什么情况下,我们需要保护私钥的备份副本?
    • @alexfvolk 使用私钥创建数字签名并使用公钥进行验证。如果不验证,则不是用公钥对应的私钥创建的,所以一个或另一个是伪造的。确切的过程太复杂,无法在评论中描述,但它是 PKI 的基本操作。 (2) 总是。
    猜你喜欢
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 2017-03-19
    • 2022-01-09
    • 1970-01-01
    • 2017-06-13
    • 2019-03-29
    相关资源
    最近更新 更多