VMware Horizon 会使用许多公钥证书。其中一些证书使用的验证机制涉及到受信任的第三方,但这类机制有时不具备所需的精度、速度或灵活性。在某些情况下,VMware Horizon 会使用称作指纹验证的替代机制。
指纹验证并不验证各个证书字段或构建信任链,而是将证书视为令牌,将整个字节序列(或其加密哈希)与预共享的字节序列或哈希进行匹配。通常情况下,预共享的字节序列或哈希会通过单独的受信任通道来即时共享,这意味着服务提供的证书可以确认就是预期的证书。
Horizon Message Bus 在连接代理之间以及 Horizon Agent 和连接代理实例之间进行通信。安装通道使用每消息签名和负载加密,而主通道由实施双向身份验证的 TLS 提供保护。当使用 TLS 保护通道时,客户端和服务器的身份验证都会使用 TLS 证书和指纹验证。对于 Horizon 消息总线通道,服务器始终充当消息路由器的角色。客户端也可以充当消息路由器,因为消息路由器就是通过这种方式共享消息的。但是,客户端是连接代理实例或 Horizon Agent。
初始证书指纹和设置消息签名密钥分别以不同的方式提供。连接代理上,证书指纹存储在 LDAP 中,以便 Horizon Agent 可以与任何连接代理进行通信,并且所有连接代理都可以相互通信。Horizon 消息总线服务器证书和客户端证书会自动生成并定期进行交换,过期证书会自动删除,因此无需手动干预,或者说,实际上无法进行手动干预。主通道两端的证书均会按照计划自动生成,并通过安装通道交换。您无法自行替换这类证书。过期的证书会自动移除。
类似的机制也适用于容器间通信。
其他通信通道可以使用客户提供的证书,但默认设置为自动生成证书。这包括安全加密链路、注册服务器和 vCenter 连接,以及显示协议和辅助通道。有关如何替换这类证书的详细信息,请参阅《Horizon 管理指南》文档。默认证书在安装时生成,除在使用 PCoIP 的情况下,默认证书不会自动续订。如果没有 PKI 生成的证书可供 PCoIP 使用,PCoIP 将在每次启动时自动生成新的证书。即使使用 PKI 生成的证书,但其中大部分通道还会使用指纹验证。
vCenter 证书的验证会结合使用不同的技术。连接代理实例始终尝试使用 PKI 验证收到的证书。如果此验证失败,VMware Horizon 管理员可以在查看证书后允许继续连接,这时连接代理会记住该证书的加密哈希,以便在随后的指纹验证中自动接受该证书。