我正在尝试了解Puppet Master和Puppet Nodes之间的HTTPS通信。我知道将会有一个共同的ca.pem,server.pem,服务器的私钥和公钥。这将在节点侧创建,在master中我们必须信任节点的证书才能建立安全连接。
但在此之后沟通将使用哪些密钥?
如果有人可以通过比较上面的图表来解释它会很棒。 提前谢谢。
答案 0 :(得分:3)
您提供的图表描述了只有一方通过SSL证书向另一方标识自己的情况。这在网上很常见,但对于Puppet来说还不够。
使用Puppet代理/主设置,主人不仅必须向代理证明其身份,而且代理还必须向主人证明他们的身份。这是一种有时被称为“相互认证”的安排的例子。由于该证书由受信任的机构签署,每一方通过向另一方提供另一方准备信任的SSL证书来实现此目的。这个额外的交换看起来像图表的第2步和第3步,但是反方向运行。
最常见的是,在Puppet中,主服务器和代理程序都依赖并信任主服务器运行的私有CA,但它们可能依赖于外部CA.无论他们居住在何处以及操作他们的人,CA都通过他们自己的证书来识别。这些涉及确定其他证书是否可信,但不包括加密通信方交换的数据。您的图表不包括获取证书,它总结了给定证书是否被信任的所有方面" 3。浏览器验证"。
建立了该代理并掌握每个知道并信任另一个之后,通过连接保护数据传输的方式与它在服务器认证系统中的相互认证系统中的方式相同。双向传输的数据(图中未显示)使用协商的对称密码和密钥进行加密。