概要
本文可帮助你处理将主机保护者服务(HGS)配置为在测试环境中使用 HTTPS 进行密钥保护和证明时发生的问题。 通过遵循这些步骤和指南,可以解决影响 HGS 的配置问题,并确保 VM 的安全通信。
症状
尝试在 HGS 上启用 HTTPS 时,会出现以下症状:
- VM 的证明和密钥解密操作失败。
- TLS(传输层安全性)和证书信任错误显示在浏览器和客户端中。
- 证书的使用者可选名称(SAN)仅包括 DNS HGS 服务名称,不包括单个节点主机名。
- 收到以下错误消息:
TransientError 主机无法访问
出现此问题时,适用以下条件:
- 通过 HTTPS 在密钥解包和认证过程中发生故障。
- 使用 HTTP 而不是 HTTPS 时,配置功能正确。
- 网络跟踪和 Test-NetConnection 确认所需端口上的通信。
- 证书的使用者可选名称(SAN)仅包括 DNS HGS 服务名称,不包括单个节点主机名。
- 此问题在其他测试环境中不可重现,例如支持工程师的实验室环境。
原因
问题的根本原因是与 HGS 的 HTTPS 配置和证书要求相关:
- 对于 HGS,HTTPS 是非强制性的,是可选的。 HTTP 通信已在消息级别加密,作为密钥保护服务 (KPS) 协议的一部分。
- 证书问题:用于 HTTPS 的证书不符合记录的要求,例如缺少所有 HGS 节点主机名的 SAN 条目。
- 特定于环境的因素:此问题可能是由特定于环境的配置或兼容性挑战引起的,或者由所使用的 Windows Server 版本中已弃用的功能引起的。
- 功能设计:开发确认基于 HTTP 的 HGS 提供足够的加密,并且安全性不需要 HTTPS。
决议
若要解决此问题,请执行以下步骤:
- 将 HTTP 用于 HGS 通信:
根据产品和开发团队的建议,应继续使用适用于 HGS 的 HTTP。 HTTP 提供消息级加密,确保数据安全性。
- 验证加密:
收集网络跟踪,以验证 HTTP 有效负载是否已加密,且未以纯文本形式公开。
- 证书重新配置(如果需要 HTTPS):
如果必须使用 HTTPS,请确保证书满足所有记录的要求,包括所有 HGS 节点主机名的 SAN 条目。 有关正确颁发证书的指导,请参阅 HGS 文档。
- 使用可用的工具进行故障排除和验证:
使用以下工具和命令对配置进行故障排除和验证:
- Test-NetConnection 验证所需的端口连接
- 用于配置 HGS 的 powerShell cmdlet,例如 Set-HgsServer
- 用于验证 HTTP 有效负载加密的网络跟踪工具
- 基于浏览器的验证以验证 HTTPS 终结点和证书信任
- 规划将来的部署:
- 在较新的 Windows Server 版本中查看 HGS 和受防护 VM 的功能弃用通知。
- 考虑用于将来部署的替代方法,例如 Azure 机密计算。
- 查看文档和指南:
- 与团队共享相关的公共文档和内部准则,以确保正确配置和了解 HGS。
数据收集
在联系Microsoft支持人员之前,可以收集有关你的问题的以下信息。
- 网络跟踪:在密钥保护交换期间执行网络跟踪,以验证通信加密。
- PowerShell 诊断输出:使用 HGS 相关的 PowerShell 命令从 HGS 服务器和受保护的主机收集输出。
- HTTP 和 HTTPS 流量日志:分析与 TLS 相关的错误和通信问题的日志。
- 配置详细信息:记录有关环境的详细信息,例如证书属性、HGS 节点主机名和 DNS 配置。