puppet https 通信如何工作?

how puppet https communication works?

我想了解 Puppet Master 和 Puppet Nodes 之间的 HTTPS 通信。我知道将创建服务器的通用 ca.pem、server.pem、私钥和 public 密钥。相同的将在节点端创建,在主节点中我们必须信任节点的证书才能建立安全连接。

但在此之后,在通信时将使用哪些密钥?

来源:How does SSL really work?

如果有人能通过对比上图来解释就更好了。 提前致谢。

您提供的图表描述了只有一方通过 SSL 证书向另一方表明自己身份的情况。这在网络上很常见,但对于 Puppet 来说是不够的。

使用 Puppet 代理/主机设置,不仅主机必须向代理证明其身份,而且代理还必须向主机证明他们的 身份。这是有时称为 "mutual authentication" 的排列示例。每一方都通过向另一方出示另一方准备信任的 SSL 证书来做到这一点,因为该证书是由受信任的机构签署的。这个额外的交换看起来像你的图表的步骤 2 和 3,但是 运行相反的方向。

在 Puppet 中最常见的情况是,master 和 agents 都依赖并信任 master 的私有 CA 运行,但它们也可能依赖外部 CA。无论它们位于何处以及由谁操作它们,CA 都由它们自己的证书标识。这些涉及确定其他证书是否可信,但不涉及对通信双方交换的数据进行加密。您的图表不包括获取证书,它总结了给定证书是否受信任的所有方面,如“3. 浏览器验证”。

在确定代理和主控彼此了解并信任对方后,通过连接保护数据传输的方式在相互认证系统中的方式与在服务器认证系统中的方式相同。双向传递的数据(图中未显示)使用协商的对称密码和密钥进行加密。