Citrix Virtual Apps and Desktops

管理证书

TLS 使用证书来建立双方之间的信任。 必须在提供服务的每台服务器上安装合适的证书,并确保连接到该服务器的计算机信任该证书。 下面是用于对证书进行签名的选项:

  • 自签名证书。 不推荐使用这些证书。 这些证书难以管理,因为您必须手动将此证书复制到必须信任该证书的任何其他计算机。
  • 企业证书颁发机构。 如果您已设置 PKI,这通常是在内部设备之间使用的最简单的选项签名证书。
  • 公共证书颁发机构。 这要求您向证书颁发机构证明该域的所有权。 它的优点是,非托管客户端设备通常预先配置为信任来自主要公共证书颁发机构的证书。

创建新证书

请按照贵组织的政策和程序来创建证书。

使用 Microsoft 证书颁发机构创建证书

如果 Microsoft 证书颁发机构集成到 Active Directory 域或 Delivery Controller 加入到的可信林中,则可以从证书 MMC 管理单元证书注册向导获取证书。 Microsoft 证书颁发机构需要发布适合 Web 服务器使用的证书模板。

根证书通过组策略自动部署到域上的其他计算机。 因此,域中的所有其他计算机都信任使用 Microsoft 证书颁发机构创建的证书。 如果您的计算机不在域内,则需要导出根证书颁发机构证书并将其导入到这些计算机中。

  1. 在服务器上,打开 MMC 控制台并添加证书管理单元。 出现提示时,选择“计算机帐户”。

  2. 展开个人 > 证书,然后使用所有任务 > 请求新证书上下文菜单命令。

    MMC 证书管理单元

  3. 单击下一步开始,然后单击下一步以确认您正在从 Active Directory 注册中获取证书。

  4. 选择合适的模板,例如 Web Server Exportable。 如果模板已设置为自动提供“使用者”的值,您可以单击注册,而不提供更多详细信息。 否则,请单击需要更多信息才能注册此证书。 请单击此处配置设置。

    “请求证书”对话框

  5. 要提供证书模板的更多详细信息,请单击详细信息箭头按钮并配置以下设置:

    使用者名称:选择公用名并添加服务器的 FQDN。

    备用名称:选择 DNS 并添加服务器的 FQDN。

    证书属性

  6. 确定

  7. 注册创建证书。 它将显示在证书列表中。

    个人证书的屏幕截图

使用 IIS 创建证书请求

如果服务器上安装了 IIS,请完成以下步骤:

  1. 打开 Internet Information Services (IIS)管理器
  2. 在“连接列表”中选择服务器节点。
  3. 打开服务器证书屏幕截图显示了在何处可以找到“服务器证书”
  4. 操作窗格中,选择创建证书请求…操作菜单的屏幕截图,其中突出显示了“创建证书请求”
  5. 输入可分辨名称属性“可分辨名称属性”屏幕的屏幕截图
  6. 加密服务提供程序属性屏幕上,将加密服务提供程序保留为默认值。 选择密钥大小为 2048 或更高。 “加密服务提供程序属性”屏幕的屏幕截图
  7. 选择一个文件名并按完成“文件名”屏幕的屏幕截图
  8. 将您的 CSR 上载到您的证书颁发机构。
  9. 收到证书后,从操作窗格中选择完成证书请求…操作菜单的屏幕截图,其中突出显示了“完成证书请求”
  10. 选择证书,提供一个友好名称,然后按确定“完整证书响应”窗口的屏幕截图

无法设置使用者备用名称。 因此,证书仅限于使用公用名指定的服务器。

从证书管理单元创建证书签名请求

可以在证书 mmc 管理单元中创建证书签名请求。 这会生成一个文件,您可以将其发送给提供证书的证书颁发机构。 然后,必须导入该证书并将其与本地私钥结合起来。

  1. 在服务器上,打开 MMC 控制台并添加证书管理单元。 出现提示时,选择“计算机帐户”。

  2. 展开个人 > 证书
  3. 选择所有任务 > 高级操作 > 创建自定义请求
  4. 开始之前的准备工作中,选择下一步
  5. 选择证书注册策略屏幕上,选择合适的现有策略,或者继续操作而不使用注册策略
  6. 自定义请求屏幕上,如果使用注册策略,请选择适当的模板(如果可用),例如 Web Server Exportable
  7. 证书信息屏幕上,展开详细信息并选择属性
  8. 证书属性窗口的常规选项卡上,输入合适的友好名称。
  9. “使用者”选项卡上:

    1. 使用者名称下,选择公用名并输入服务器的 FQDN。 可以输入通配符。 选择添加
    2. 使用者名称下,为组织、组织单位、地区、州/省/自治区/直辖市、国家/地区添加适当的值。
    3. 备用名称下,选择 DNS。 添加服务器 FQDN。 可以添加多个服务器 FQDN 或通配符 FQDN。
  10. 扩展程序选项卡上:

    • 密钥用法下添加数字签名密钥加密
    • 扩展密钥用法(应用程序策略) 下,添加服务器身份验证客户端身份验证
  11. 私钥选项卡上。

    • 选择加密服务提供程序(CSP) 下选择合适的提供程序。
    • 密钥选项下,选择合适的密钥大小。 对于 RSA 提供程序,请至少使用密钥大小 2048。 为了提高安全性,您可能希望选择 4096,但这会对性能产生轻微影响。
    • 密钥选项下,选择使私钥可导出
  12. 选择确定
  13. 选择下一步
  14. 选择浏览并保存您的请求。
  15. 选择完成
  16. 将您的 CSR 上载到您的证书颁发机构。
  17. 收到证书后,将其导入同一台服务器,以便将其链接到私钥。

创建新自签名证书

在安装 Delivery Controller 和 Web Studio 过程中会创建自签名证书。 可以生成新的自签名证书并使用它来替换现有证书。

使用 IIS 管理器

如果服务器上安装了 IIS,可以执行以下步骤:

  1. 以管理员身份登录服务器。

  2. 打开 IIS 管理器
  3. 打开服务器证书
  4. 操作窗格中,选择创建自签名证书

    服务器证书

  5. 创建自签名证书中,输入证书的名称,然后单击确定。 然后创建自签名证书。

    创建自签名证书

使用 PowerShell

可以使用 PowerShell 创建自签名证书:

  $certSubject = "CN=myddc.example.com" # The FQDN of the server.
  $friendlyName = "Self-Signed-3"
  $expireYears = 5

  ## Create new self-signed certificate under LocalMachine\My
  $certificate = New-SelfSignedCertificate -Subject $certSubject -CertStoreLocation "Cert:\LocalMachine\My\" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256 -FriendlyName $friendlyName -NotAfter $([System.DateTime]::Now.AddYears($expireYears))

  # Add to trusted root certificates
  $rootCertStore = Get-Item "Cert:\LocalMachine\Root\"
  $rootCertStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
  $rootCertStore.Add($certificate)
<!--NeedCopy-->

导入现有证书

可以使用以下任意方法将现有证书导入服务器。

证书导入向导

  1. 双击 PFX 文件,或者右键单击该文件并选择安装 PFX。 这将打开证书导入向导

  2. 对于 Store Location(存储位置),请选择 Local Machine(本地计算机)。

    “证书导入向导”的屏幕截图

  3. 如果需要,请输入密码。

    “证书导入向导”的私钥保护步骤的屏幕截图

  4. 选择证书存储。 对于服务器证书,请选择个人。 如果这是您希望从此计算机信任的根证书或自签名证书,请选择受信任的根证书颁发机构

    “证书导入向导”的证书存储步骤的屏幕截图

使用“管理计算机证书”控制台

  1. 打开“管理计算机证书”控制台并导航到适当的证书存储。 对于服务器证书来说,通常执行此操作。 个人 > 证书。 要信任根证书或自签名证书,请选择受信任的根证书颁发机构 > 证书

  2. 右键单击该证书并选择 > 所有任务 > 导入…

    “管理计算机证书”控制台

  3. 选择浏览… 并选择文件。

  4. 如果需要,请输入密码。

使用 PowerShell

要导入证书,请使用 PowerShell cmdlet Import-PfxCertificate。 例如,要将证书 certificate.pfx 和密码 123456 导入个人证书存储,请运行以下命令:

  Import-PfxCertificate -Password $(ConvertTo-SecureString -String "123456" -AsPlainText -Force) -CertStoreLocation Cert:\LocalMachine\My\ -FilePath .\Desktop\certificate.pfx
<!--NeedCopy-->

要导入受信任的根证书,请将 CertStoreLocation 设置为“Cert:\LocalMachine\Root\”。

导出没有私钥的证书

要导出证书以便可以将其导入其他设备来信任该证书,应排除私钥。

  1. 打开“管理计算机证书”。 导航到个人 > 证书并选择要导出的证书。

  2. 操作菜单中,选择所有任务,然后选择导出

    带有“导出”菜单的证书管理的屏幕截图

  3. 选择否,不导出私钥,然后按下一步

    导出证书

  4. 选择格式 DER 编码的二进制 X.509 (.CER)(默认值)并按下一步

  5. 输入文件名并按下一步

    “证书导出向导”的文件名的屏幕截图

  6. 选择完成

    “证书导出向导”的成功导出的屏幕截图

导出带私钥的证书

要导出证书以便在其他服务器上使用,必须包含私钥。

  1. 打开“管理计算机证书”。 导航到个人 > 证书并选择要导出的证书。

  2. 操作菜单中,选择所有任务,然后选择导出

    带有“导出”菜单的证书管理的屏幕截图

  3. 选择是,导出私钥,然后选择下一步

    导出证书

  4. 安全选项卡上,输入密码,然后选择下一步

    “证书导出向导”的安全步骤的屏幕截图

  5. 输入文件名并选择下一步

    “证书导出向导”的文件名的屏幕截图

  6. 选择完成

    “证书导出向导”的成功导出的屏幕截图

将证书转换为 PEM 格式

默认情况下,Windows 将 PKCS#12 格式的证书导出为包含私钥的 .pfx 文件。 要在 NetScaler Gateway 或许可证服务器上使用证书,必须将证书和私钥提取到 PEM 格式的单独文件中。 可以使用 openssl 来执行此操作。

要以 PEM 格式导出证书,请运行:

  openssl pkcs12 -in name.pfx -clcerts -nokeys -out name.cer
<!--NeedCopy-->

它会要求您输入现有密码和新密码

要以 PEM 格式导出密钥,请运行以下命令:

  openssl pkcs12 -in name.pfx -nocerts -out name.key
<!--NeedCopy-->

信任证书

  • 如果使用来自公共证书颁发机构的证书,设备通常会预先配置根证书。
  • 如果使用企业证书颁发机构,则必须将根证书部署到必须信任该证书的任何设备中。 如果使用 Active Directory 认证服务,根证书也会通过组策略部署到域上的所有计算机。 必须手动将根证书导入未加入域的计算机(例如 NetScaler Gateway 或其他域上的计算机)。
  • 如果使用自签名证书,必须将其手动安装到需要信任该证书的任何计算机上。

要从 Windows 中导出自签名或受信任的根证书,请参阅导出不带私钥的证书

要使 Windows 信任该证书,必须将证书导入受信任的根证书颁发机构存储中。 如果使用 PowerShell,请输入存储 Cert:\LocalMachine\Root\

要使 NetScaler 信任该证书,请先将证书转换为 PEM 格式,然后再安装根证书

管理证书