【问题标题】:x.509 PEM certificate structurex.509 PEM 证书结构
【发布时间】:2017-05-17 03:51:29
【问题描述】:

这可能是一个非常愚蠢的问题,但我很难理解这是如何工作的。

我正在使用 MongoDB。我有 3 个文件:server.pem、client.pem 和 ca.pem。我需要使用它们对副本集的成员进行内部身份验证。

这三个都是相似的。第一个问题是:为什么我需要三个?每个人的目的是什么?

我还有一个作业,我必须说明这三个是否都必须包含证书和密钥才能工作。我不想直接回答这个问题,但我想知道这是否与 x.509 标准或 MongoDB 本身有关,以及在哪里寻找答案。

我一直在记录 here 和 Google(主要是 Wikipedia),但我没有发现任何地方都提到了这个主题。

感谢任何帮助。

谢谢

【问题讨论】:

  • server.pem 是您的服务器证书 | client.pem 是您的客户端证书 | ca.pem 是您用于签署上述这两个证书的根证书或中间证书。 | => 这与 openssl 有关,与 mongodb 无关 |关于您的问题,它似乎与 x.509 无关。您是否尝试仅运行具有身份验证的 MongoDB ReplicaSet?
  • @bappr 是的,这正是我想要做的。感谢您的解释,但我并不真正了解根(CA)证书的作用。你能详细说明一下吗?
  • 好的。这是可以理解的,因为您不需要任何证书来配置副本集节点之间的身份验证。仅使用手动生成的密钥并将此密钥提供给您的每个节点。 docs.mongodb.com/v3.0/tutorial/enable-internal-authentication
  • 是的,我已经读过(实际上链接在帖子中)。我知道如何对密钥文件使用内部身份验证,但我需要使用 x.509 证书来完成此任务。我想知道 pem 文件是否还必须包含带有官方文档链接的证书中的密钥。
  • @Aurasphere 我将发布完整的答案,但恐怕要等到作业截止日期已过。我从 MongoDB 大学课程中认出了你的问题 - 我也在接受它 :)-

标签: mongodb x509 pem mongodb-replica-set mongodb-internal-auth


【解决方案1】:

Using x.509 Certificates for Membership Authentication 上的 MongoDB 教程是一个很好的要求指南,但这里有一个指南,它在您获得的证书的上下文中进行了解释。

certificates you need are:

  1. 你的certification authority (CA)的证书(不包括私钥)
  2. 对于副本集中的每个节点,一个私钥
  3. 对于副本集中的每个节点,一个证书:
    • 基于该私钥
    • 由同一个 CA 颁发
    • 按名称标识服务器

请注意,在节点在不同服务器上运行的普通副本集中,每个节点都需要自己的证书。在您的分配中,您获得了一个服务器证书,供每个节点使用;仅当每个节点都在同一台服务器上运行时才有效。

出于以下原因需要该特定组件集:

  1. CA 的私钥应该为 CA 本身所知。
  2. 节点A与节点B建立通信时,需要验证节点B的身份;它通过节点 B 向节点 A 显示其证书(不包括私钥)来实现。
  3. 节点 A 使用 CA 的证书来验证节点 B 的证书(从而验证身份)
  4. 同样,节点 B 使用 CA 的证书来验证节点 A 的证书(从而验证身份)
  5. 对于节点 A 和 B 之间的加密通信,节点 A 必须使用自己的私钥加密其传出消息;保存它最方便的地方是它的证书旁边,在pem file。此私钥不与任何其他代理共享。
  6. 同样,节点 B 的 pem 文件包含节点 B 的私钥,仅供节点 B 自己使用。

所以总结来说,每个节点需要有:

  1. CA 的证书
  2. 节点自己的私钥
  3. 节点自己的证书

这些映射到您提供的文件如下:

  • ca.pem 拥有 CA 的证书,仅此而已。
  • 为方便起见,server.pem 包含节点的证书和私钥。
  • client.pem 根本不需要;当客户端想要连接到正在运行的副本集时,大概会使用它。

【讨论】:

  • 感谢您的解释,我已经阅读了很多次文档,但在任何地方都找不到这种结构,也没有在视频中找到。这应该首先这样解释。顺便说一句,我得到了正确的答案。让我想出正确答案的是你不应该拥有的 CA 私钥。但是你的解释让我更好地理解了一切。谢谢!
猜你喜欢
  • 2015-05-16
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2011-10-18
  • 2017-04-09
  • 2011-09-21
相关资源
最近更新 更多