在新的专用林中使用 AD 模式初始化 HGS 群集(默认)

重要

从 Windows Server 2019 开始,管理员信任的证明(AD 模式)已弃用。 对于无法进行 TPM 证明的环境,请配置主机密钥证明。 主机密钥证明提供与 AD 模式类似的保证,并且更易于设置。

  1. 客户端可以使用故障转移群集分布式网络名称 (DNN) 轻松联系任何 HGS 节点。 你需要选择 DNN。 此名称将在 HGS DNS 服务中注册。 例如,如果有 3 个主机名为 HGS01、HGS02 和 HGS03 的 HGS 节点,则可以决定为 DNN 选择“hgs”或“HgsCluster”。

  2. 找到 HGS 守护者证书。 需要一个签名证书和一个加密证书来初始化 HGS 群集。 向 HGS 提供证书的最简单方法是为每个包含公钥和私钥的证书创建一个受密码保护的 PFX 文件。 如果使用 HSM 支持的密钥或其他不可导出的证书,请确保先将证书安装到本地计算机的证书存储中,然后再继续操作。 有关要使用的证书的详细信息,请参阅为 HGS 获取证书

  3. 在第一个 HGS 节点上的提升 PowerShell 窗口中运行 Initialize-HgsServer。 此 cmdlet 的语法支持许多不同的输入,最常见的 2 个调用如下:

    • 如果使用 PFX 文件作为签名和加密证书,请运行以下命令:

      $signingCertPass = Read-Host -AsSecureString -Prompt "Signing certificate password"
      $encryptionCertPass = Read-Host -AsSecureString -Prompt "Encryption certificate password"
      
      Initialize-HgsServer -HgsServiceName 'MyHgsDNN' -SigningCertificatePath '.\signCert.pfx' -SigningCertificatePassword $signingCertPass -EncryptionCertificatePath '.\encCert.pfx' -EncryptionCertificatePassword $encryptionCertPass -TrustActiveDirectory
      
    • 如果使用本地证书存储中安装的不可导出证书,请运行以下命令。 如果不知道证书的指纹,可以通过运行 Get-ChildItem Cert:\LocalMachine\My 列出可用证书。

      Initialize-HgsServer -HgsServiceName 'MyHgsDNN' -SigningCertificateThumbprint '1A2B3C4D5E6F...' -EncryptionCertificateThumbprint '0F9E8D7C6B5A...' --TrustActiveDirectory
      
  4. 如果使用指纹向 HGS 提供了任何证书,系统将指示你向 HGS 授予对这些证书私钥的读取访问权限。 在安装了桌面体验的服务器上,完成以下步骤:

    1. 打开本地计算机证书管理器 (certlm.msc)
    2. 找到证书,然后右键单击,再依次选择“所有任务”和“管理私钥”
    3. 单击“添加”
    4. 在对象选取器窗口中,单击“对象类型”并启用“服务帐户”
    5. 输入 Initialize-HgsServer 的警告文本中提到的服务帐户的名称
    6. 确保 gMSA 对私钥具有“读取”访问权限。

    在服务器核心上,需要下载 PowerShell 模块来帮助设置私钥权限。

    1. 如果 HGS 服务器已建立 Internet 连接,请在 HGS 服务器上运行 Install-Module GuardedFabricTools,或者在另一台计算机上运行 Save-Module GuardedFabricTools 并将模块复制到 HGS 服务器。

    2. 运行 Import-Module GuardedFabricTools。 这将向 PowerShell 中找到的证书对象添加其他属性。

    3. 使用 Get-ChildItem Cert:\LocalMachine\My 在 PowerShell 中查找证书指纹

    4. 更新 ACL,将指纹替换为你自己的指纹,并将以下代码中的 gMSA 帐户替换为 Initialize-HgsServer 的警告文本中列出的帐户。

      $certificate = Get-Item "Cert:\LocalMachine\1A2B3C..."
      $certificate.Acl = $certificate.Acl | Add-AccessRule "HgsSvc_1A2B3C" Read Allow
      

    如果使用 HSM 支持的证书或存储在第三方密钥存储提供程序中的证书,则这些步骤可能不适合。 请参阅密钥存储提供程序的文档,了解如何管理私钥的权限。 在某些情况下,没有授权,或者在安装证书时向整个计算机提供了授权。

  5. 就这么简单! 在生产环境中,应继续向群集添加其他 HGS 节点

后续步骤