【问题标题】:Does the server need a copy of CA certificate in PKI?服务器是否需要 PKI 中的 CA 证书副本?
【发布时间】:2014-08-30 19:16:35
【问题描述】:

据我了解数字证书的工作原理: 1、服务器生成公私钥 2. 然后生成 CSR 并提交给 CA 3. CA用自己的私钥对其进行签名,并将证书返回给服务器

向服务器发送数据时: 1. 使用服务器的公钥加密数据并传输。只有服务器才能解密它,因为它拥有私钥

从服务器下载数据时: 1. 服务器使用其私钥对数据进行加密。它传输证书和数据。 2. 用户使用 CA 的公钥解密证书。 3. 然后使用解密证书得到的公钥解密数据。

我认为服务器需要的只是私钥和CA颁发的证书 客户端需要的是 CA 公钥 我不明白的是服务器配置也有一个指定 CA 证书文件路径的选项。如果我们谈论的是客户端不使用自己的密钥的仅服务器安全性,这是否会被使用?这是带有 SSL/TLS 的服务器配置的强制参数吗?

我希望我说得通

【问题讨论】:

  • 这个问题似乎是题外话,因为它是关于security 而不涉及编程。

标签: ssl encryption digital-certificate


【解决方案1】:

在向服务器发送数据时: 1. 使用服务器的加密数据 公钥和传输。只有服务器才能解密它 有私钥

从服务器下载数据时: 1. 服务器对数据进行加密 使用它的私钥。它传输证书和数据。 2. 用户使用 CA 的公钥解密证书。 3.然后解密 使用从解密证书获得的公钥的数据。

这是完全错误的(请记住,您实际上并没有使用私钥加密)。这根本不是 SSL 的工作方式。每个会话都会为加密生成一个新的对称密钥。见this question for more details

CA 证书用作信任锚来验证远程方的身份。

严格来说,服务器本身不需要有一份用于签署自己的证书的 CA 副本,因为它取决于远程方(客户端)将其作为信任锚(即它已经信任的东西) )。

不过,它可以将 CA 证书作为其服务器链的一部分发送。如果 CA 证书本身是使用链上的另一个 CA 证书签名的,实际上建议这样做。这样做会增加被远程方认证的机会。

服务器通常可以选择指定 CA 证书,原因有两个(取决于选项是什么):

  • 提供自己的证书链(即使用中间 CA 证书)。
  • 在使用时验证客户端证书(在这种情况下,服务器有自己的信任锚,可以验证远程证书,即客户端证书)。

【讨论】:

  • 感谢您指出我的错误。我从维基百科(图表)中阅读“公钥证书”时误解了那部分。感谢其他链接据我了解,服务器本身不需要副本。您能否分享更多关于 CA 如何签署和颁发证书的信息/链接?您还提到,服务器提供自己的证书链。我在哪里可以获得有关此服务器/客户端通信的更多详细信息?
  • 这是一组相当广泛的问题。您可以查看How does SSL/TLS work?thisthisthis。当您申请证书时,您向 CA 提供您的公钥和其他信息(通常在 CSR 中),他们检查信息是否正确并将它们一起签名以形成 X.509 证书,使用他们自己的主题名称作为颁发者您的证书名称。
猜你喜欢
  • 2014-09-08
  • 2010-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多