Citrix Virtual Apps and Desktops 7 2203 LTSR

传输层安全 (TLS)

Citrix Virtual Apps 和 Desktops 支持传输层安全 (TLS) 协议,用于组件之间基于 TCP 的连接。Citrix Virtual Apps 和 Desktops 还支持数据报传输层安全 (DTLS) 协议,用于使用 自适应传输 的基于 UDP 的 ICA/HDX 连接。

TLS 和 DTLS 相似,并支持相同的数字证书。将 Citrix Virtual Apps 或 Citrix Virtual Desktops™ 站点配置为使用 TLS 也会将其配置为使用 DTLS。请使用以下过程;除另有说明外,这些步骤对 TLS 和 DTLS 均适用:

  • 在所有 Delivery Controller 上获取、安装和注册服务器证书,并使用 TLS 证书配置端口。有关详细信息,请参阅 在 Controller 上安装 TLS 服务器证书

    (可选)您可以更改 Controller 用于侦听 HTTP 和 HTTPS 流量的端口。

  • 通过完成以下各项任务,可以实现在 Citrix Workspace™ 应用程序和虚拟投递代理 (VDA) 之间建立 TLS 连接:

    • 在安装了 VDA 的计算机上配置 TLS。(为方便起见,下文将安装了 VDA 的计算机简称为“VDA”。)有关一般信息,请参阅 VDA 上的 TLS 设置。强烈建议您使用 Citrix 提供的 PowerShell 脚本配置 TLS/DTLS。有关详细信息,请参阅 使用 PowerShell 脚本在 VDA 上配置 TLS。但是,如果您想手动配置 TLS/DTLS,请参阅 在 VDA 上手动配置 TLS
    • 通过在 Studio 中运行一组 PowerShell cmdlet,在包含 VDA 的交付组中配置 TLS。有关详细信息,请参阅 在交付组上配置 TLS

      要求和注意事项:

      • 在用户和 VDA 之间启用 TLS 连接仅适用于 XenApp 7.6 和 XenDesktop 7.6 站点以及更高版本支持的发行版。
      • 在安装组件、创建站点、创建计算机目录和创建交付组之后,在交付组和 VDA 上配置 TLS。
      • 要在交付组中配置 TLS,您必须拥有更改 Controller 访问规则的权限。完全管理员拥有此权限。
      • 要在 VDA 上配置 TLS,您必须是安装了 VDA 的计算机上的 Windows 管理员。
      • 在由 Machine Creation Services™ 或 Provisioning Services 预配的池化 VDA 上,VDA 计算机映像会在重新启动时重置,导致以前的 TLS 设置丢失。每次 VDA 重新启动时运行 PowerShell 脚本以重新配置 TLS 设置。

警告:

对于涉及在 Windows 注册表中执行任务的情况,不正确地编辑注册表可能会导致严重问题,甚至可能需要重新安装操作系统。Citrix® 无法保证能够解决因不正确使用注册表编辑器而导致的问题。请自行承担使用注册表编辑器的风险。编辑注册表之前,请务必备份注册表。

有关为站点数据库启用 TLS 的信息,请参阅 CTX137556

在控制器上安装 TLS 服务器证书

对于 HTTPS,XML Service 通过使用服务器证书(而非客户端证书)支持 TLS 功能。本部分介绍如何在 Delivery Controller 中获取和安装 TLS 证书。相同的步骤可应用于 Cloud Connector,以加密 STA 和 XML 流量。

尽管有各种不同类型的证书颁发机构以及从它们请求证书的方法,但本文档介绍的是 Microsoft 证书颁发机构。Microsoft 证书颁发机构需要发布一个用途为“服务器身份验证”的证书模板。

如果 Microsoft 证书颁发机构已集成到 Active Directory 域或 Delivery Controller 所加入的受信任林中,则可以从“证书 MMC 管理单元证书注册向导”获取证书。

申请和安装证书的步骤

  1. 在 Delivery Controller™ 上,打开 MMC 控制台并添加“证书”管理单元。出现提示时,选择“计算机帐户”。
  2. 展开 “个人”>“证书”,然后使用 “所有任务”>“请求新证书” 上下文菜单命令。

    MMC 证书管理单元(/zh-cn/citrix-virtual-apps-desktops/2203-ltsr/media/tls-mmc-certificates.png)

  3. 单击 “下一步” 开始,然后再次单击 “下一步” 确认您正在从 Active Directory 注册获取证书。
  4. 选择“服务器身份验证”证书的模板。如果模板已设置为自动提供“主题”的值,则无需提供更多详细信息即可单击 “注册”

    请求证书对话框(/zh-cn/citrix-virtual-apps-desktops/2203-ltsr/media/tls-request-certificates.png)

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

    主题名称:选择“公用名”并添加交付控制器的 FQDN。

    备用名称:选择 DNS 并添加交付控制器的 FQDN。

    证书属性

配置 SSL/TLS 侦听器端口

如果 IIS Windows 组件(作为 Web Studio 和 Director 的一部分安装)安装在同一服务器上,则可以使用 IIS 配置 TLS。有关详细信息,请参阅在 Web Studio 和 Director 上启用 TLS。否则,要使用 PowerShell 配置证书,请执行以下操作:

  1. 要检查是否存在已绑定的现有证书,请打开命令提示符并运行 netsh http show sslcert

    netsh http show sslcert
    <!--NeedCopy-->
    
  2. 如果存在现有绑定,则将其删除。

    netsh http delete sslcert ipport=0.0.0.0:443
    <!--NeedCopy-->
    

    如果现有绑定中指定了特定的 IP 地址和端口,请将 0.0.0.0:443 替换为该 IP 地址和端口。

  3. 查找您之前安装的证书的指纹。要查看指纹,请打开管理计算机证书,浏览到该证书并将其打开,然后转到详细信息选项卡。

    显示指纹的证书属性屏幕截图

    或者,您可以使用 PowerShell。例如,以下脚本查找其公用名与服务器主机名匹配的证书并打印缩略图:

    $HostName = ([System.Net.Dns]::GetHostByName(($env:computerName))).Hostname
    $Thumbprint = (Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -match ("CN=" + $HostName)}).Thumbprint -join ';'
    Write-Host -Object "Certificate Thumbprint for $($HostName): $($Thumbprint)" -Foreground Yellow
    <!--NeedCopy-->
    

    如果证书公用名与主机名不匹配,则此操作将失败。如果主机名有多个证书,则此操作将返回多个连接在一起的指纹,您必须选择相应的指纹。

    以下示例演示了如何按友好名称查找证书:

    $friendlyName = "My certificate name"
    $Thumbprint = (Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.FriendlyName -eq $friendlyNam}).Thumbprint -join ';'
    Write-Host -Object "Certificate Thumbprint for $friendlyName: $($Thumbprint)" -Foreground Yellow
    <!--NeedCopy-->
    

    如果存在具有指定友好名称的多个证书,则此操作将返回多个连接在一起的指纹,您必须选择相应的指纹。

  4. 要将证书绑定到端口,请使用 netsh http add sslcert 命令:

    netsh http add sslcert ipport=[IP address]:443 certhash=[certificate hash] appid=[application GUID] disablelegacytls=enable
    <!--NeedCopy-->
    
    • ipport:IP 地址和端口。使用 0.0.0.0:443 会将其应用于所有 IP 地址。您也可以指定特定的 IP 地址。

    • certhash:上一步中您确定的证书指纹。
    • appid:思杰代理服务 的全局唯一标识符。

      注意:

      续订证书或重新绑定时,请使用与 Broker Service 关联的特定 appid,而不是任意 GUID。

      要查找 思杰代理服务 的正确 appid

      1. 以管理员身份打开 PowerShell 命令窗口并运行以下命令:

         Get-WmiObject -Class Win32_Product | Select-String -Pattern "broker"
         <!--NeedCopy-->
        
      2. 在输出中找到 Citrix 代理服务的标识号 (GUID)(例如,{D333C884-187F-447C-8C67-463F33989C8F})。将此 GUID 用于 appid 参数。

    • disablelegacytls=enable:禁用旧版 TLS。此参数在 Windows 2022 及更高版本上可用。在 Windows 2022 上,它会禁用 TLS 1.0 和 1.1。在 Windows 2025 上,这没有必要,因为 TLS 1.0 和 1.1 默认处于禁用状态。

    例如,运行以下命令以将指纹为 bc96f958848639fd101a793b87915d5f2829b0b6 的证书绑定到所有 IP 地址上的端口 443

    netsh http add sslcert ipport=0.0.0.0:443 certhash=bc96f958848639fd101a793b87915d5f2829b0b6 appid={91fe7386-e0c2-471b-a252-1e0a805febac} disablelegacytls=enable
    <!--NeedCopy-->
    

启用 HTTPS 后,您应该配置任何 StoreFront 部署 和 Netscaler 网关,以使用 HTTPS 而不是 HTTP 连接到交付控制器。

注意:

如果控制器安装在 Windows Server 2016 上,并且 StoreFront 安装在 Windows Server 2012 R2 上,则需要在控制器上进行配置更改,以更改 TLS 密码套件的顺序。对于控制器和 StoreFront 与其他 Windows Server 版本组合的情况,不需要此配置更改。

密码套件顺序列表必须包含 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 密码套件(或两者);并且这些密码套件必须位于任何 TLS_DHE_ 密码套件之前。

  1. 使用 Microsoft 组策略编辑器,导航到 计算机配置 > 管理模板 > 网络 > SSL 配置设置
  2. 编辑策略“SSL 密码套件顺序”。默认情况下,此策略设置为“未配置”。将此策略设置为“已启用”。
  3. 将套件按正确顺序排列;删除任何您不想使用的密码套件。

确保 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 位于任何 TLS_DHE_ 密码套件之前。

在 微软 MSDN 上,另请参阅 优先处理 Schannel 密码套件

更改 HTTP 或 HTTPS 的端口

默认情况下,Controller 上的 XML Service 侦听端口 80 以处理 HTTP 流量,侦听端口 443 以处理 HTTPS 流量。尽管您可以使用非默认端口,但请注意将 Controller 暴露给不受信任网络的安全风险。部署独立的 StoreFront 服务器优于更改默认设置。

要更改 Controller 使用的默认 HTTP 或 HTTPS 端口,请从 Studio 运行以下命令:

BrokerService.exe -WIPORT \<http-port> -WISSLPORT \<https-port>

其中 <http-port> 是 HTTP 流量的端口号,<https-port> 是 HTTPS 流量的端口号。

注意:

更改端口后,Studio 可能会显示有关许可证兼容性和升级的消息。要解决此问题,请使用以下 PowerShell cmdlet 序列重新注册服务实例:

Get-ConfigRegisteredServiceInstance -ServiceType Broker -Binding XML_HTTPS |
Unregister-ConfigRegisteredServiceInstance
Get-BrokerServiceInstance | where Binding -eq "XML_HTTPS" |
Register-ConfigServiceInstance
<!--NeedCopy-->

仅强制执行 HTTPS 流量

如果您希望 XML 服务忽略 HTTP 流量,请在控制器上的 HKLM\Software\Citrix\DesktopServer\ 中创建以下注册表设置,然后重新启动代理服务。

要忽略 HTTP 流量,请创建一个 DWORD 类型的注册表项 XmlServicesEnableNonSsl,并将其值设置为 0。

您可以创建相应的注册表 DWORD 值来忽略 HTTPS 流量:DWORD XmlServicesEnableSsl。确保它未设置为 0。

VDA 上的 TLS 设置

交付组不能同时包含已配置 TLS 的 VDA 和未配置 TLS 的 VDA。在为交付组配置 TLS 之前,请确保已为该交付组中的所有 VDA 配置 TLS。

在 VDA 上配置 TLS 时,将更改已安装的 TLS 证书的权限,从而授予 ICA® 服务对证书私钥的读取访问权限,并通知 ICA 服务以下信息:

  • 要用于 TLS 的证书存储中的哪个证书
  • 要用于 TLS 连接的 TCP 端口号

    必须配置 Windows 防火墙(如果已启用)以允许在此 TCP 端口上建立入站连接。使用 PowerShell 脚本时,将为您完成此配置。

  • 允许使用哪些版本的 TLS 协议。

    重要:

    Citrix 建议您检查 SSLv3 的使用情况,并在适当的情况下重新配置这些部署以删除对 SSLv3 的支持。请参阅 CTX200238

    支持的 TLS 协议版本遵循以下层次结构(从低到高):SSL 3.0、TLS 1.0、TLS 1.1 和 TLS 1.2。指定允许的最低版本;允许使用该版本或更高版本的所有协议连接。

    例如,如果将 TLS 1.1 指定为最低版本,则允许 TLS 1.1 和 TLS 1.2 协议连接。如果将 SSL 3.0 指定为最低版本,则允许所有受支持版本的连接。如果将 TLS 1.2 指定为最低版本,则只允许 TLS 1.2 连接。

    DTLS 1.0 版本与 TLS 1.1 版本相对应,DTLS 1.2 版本则与 TLS 1.2 版本相对应。

  • 允许使用哪些 TLS 密码套件。

    密码套件选择用于连接的加密。客户端和 VDA 可以支持不同的密码套件集。当客户端(Citrix Workspace 应用程序或 StoreFront)连接并发送受支持的 TLS 密码套件列表时,VDA 会将客户端的密码套件之一与其自身配置的密码套件列表中的一个密码套件进行匹配,并接受连接。如果没有匹配的密码套件,VDA 将拒绝连接。

    VDA 支持三组密码套件(也称为合规模式):GOV(政府)、COM(商业)和 ALL。可接受的密码套件还取决于 Windows FIPS 模式;有关 Windows FIPS 模式的信息,请参阅 http://support.microsoft.com/kb/811833。下表列出了每组中的密码套件:

TLS/DTLS 协议的密码套件 全部 商业 政府 全部 商业 政府
FIPS Mode 关闭 关闭 关闭 开启 开启 开启
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384* X   X X   X
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 X   X X   X
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA X X   X X  

* Not supported in Windows Server 2012 R2.

注意:

The VDA does not support DHE ciphersuites (for example, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, and TLS_DHE_RSA_WITH_AES_128_CBC_SHA.) If selected by Windows, they may not be used by Receiver.

如果您使用的是 Citrix Gateway,请参阅 Citrix ADC 文档,了解有关后端通信的密码套件支持信息。有关 TLS 密码套件支持的信息,请参阅 Citrix ADC 设备上可用的密码。有关 DTLS 密码套件支持的信息,请参阅 DTLS 密码支持

关于证书的请求和安装

  1. 在 VDA 上,打开 MMC 控制台并添加“证书”管理单元。出现提示时,选择“计算机帐户”。
  2. 展开 个人 > 证书,然后使用上下文菜单命令 所有任务 > 请求新证书
  3. 单击 Next(下一步)开始,然后再次单击 Next(下一步)确认您正在从 Active Directory 注册获取证书。
  4. 选择服务器身份验证证书的模板。默认的 Windows Computer(计算机)或 Web Server Exportable(Web 服务器可导出)均可接受。如果模板已设置为自动提供“主题”的值,则无需提供更多详细信息即可单击 Enroll(注册)。

    请求证书对话框

  5. 要为证书模板提供更多详细信息,请单击 Details(详细信息)并配置以下内容:

    主题名称 — 选择类型 通用名称 并添加 VDA 的 FQDN

    备用名称 — 选择类型 域名系统 并添加 VDA 的 FQDN

    证书属性

    注意:

    使用 Active Directory 证书服务证书自动注册来自动向 VDA 颁发和部署证书。这在 https://support.citrix.com/article/CTX205473 中进行了描述。

    您可以使用通配符证书,以允许单个证书保护多个 VDA:

    主题名称 — 选择类型 通用名称 并输入 VDAs 的 *.primary.domain

    Alternative name — select type DNS and add the *.primary.domain of the VDAs

    请求证书通配符对话框

    您可以使用 SAN 证书,以允许单个证书保护多个特定的 VDA:

    主题名称 — 选择类型 通用名称 并输入一个字符串以帮助识别证书用途

    备用名称 — 选择类型 DNS 并为每个 VDA 的 FQDN 添加一个条目。将备用名称的数量保持在最低限度,以确保最佳的 TLS 协商。

    请求证书对话框

    注意:

    通配符证书和 SAN 证书都要求在“私钥”选项卡上选中“使私钥可导出”:

    请求证书对话框

使用 PowerShell 脚本在虚拟投递代理上配置传输层安全

将 TLS 证书安装到证书存储的“本地计算机”>“个人”>“证书”区域。如果该位置存在多个证书,请向 PowerShell 脚本提供证书的指纹。

注意:

从 XenApp and XenDesktop 7.16 LTSR 开始,PowerShell 脚本会根据虚拟投递代理的完全限定域名查找正确的证书。当虚拟投递代理的完全限定域名只有一个证书时,您无需提供指纹。

Enable-VdaSSL.ps1 脚本用于启用或禁用 VDA 上的 TLS 侦听器。此脚本位于安装介质的 Support > Tools > SslSupport 文件夹中。

当您启用 TLS 时,DHE 密码套件将被禁用。ECDHE 密码套件不受影响。

当您启用 TLS 时,脚本会禁用指定 TCP 端口的所有现有 Windows 防火墙规则。然后,它会添加一条新规则,允许 ICA 服务仅在 TLS TCP 和 UDP 端口上接受传入连接。它还会禁用以下 Windows 防火墙规则:

  • 思杰 ICA (默认端口: 1494)
  • 思杰 CGP (默认端口: 2598)
  • 思杰 Web 套接字 (默认: 8008)

其效果是用户只能使用 TLS 或 DTLS 进行连接。如果没有 TLS 或 DTLS,他们将无法使用 ICA/HDX、具有会话可靠性的 ICA/HDX 或通过 WebSocket 的 HDX。

注意:

DTLS 不支持与通过 UDP 实时传输的 ICA/HDX 音频一起使用,也不支持与 ICA/HDX Framehawk 一起使用。

请参阅网络端口

该脚本包含以下语法说明以及额外示例;您可以使用 Notepad++ 等工具查看此信息。

重要提示:

请指定 Enable 参数或 Disable 参数中的一个,以及 CertificateThumbPrint 参数。其他参数均为可选。

语法

Enable-VdaSSL {-Enable | -Disable} -CertificateThumbPrint "<thumbprint>" [-SSLPort <port>] [-SSLMinVersion "<min-ssl-version>"] [-SSLCipherSuite"\<suite>"]

参数 说明
启用 在 VDA 上安装并启用 TLS 侦听器。此参数或禁用参数是必需的。
禁用 禁用 VDA 上的 TLS 侦听器。此参数或启用参数是必需的。如果指定此参数,则其他参数无效。
证书指纹 “<指纹>\"指纹>指纹> 证书存储中 TLS 证书的指纹,用引号括起来。脚本使用指定的指纹来选择要使用的证书。如果省略此参数,则会选择不正确的证书。
SSL端口 <端口>端口>端口> TLS 端口。默认值:443
SSLMinVersion “" 最低 TLS 协议版本,用引号括起来。有效值:“TLS_1.0”(默认)、“TLS_1.1”和“TLS_1.2”。
SSL 密码套件 “套件” TLS 密码套件,用引号括起来。有效值:“GOV”、“COM”和“ALL”(默认)。

示例

以下脚本安装并启用 TLS 协议版本值。指纹(在此示例中表示为“12345678987654321”)用于选择要使用的证书。

Enable-VdaSSL -Enable -CertificateThumbPrint "12345678987654321"

以下脚本安装并启用 TLS 侦听器,并指定 TLS 端口 400、GOV 密码套件和最低 TLS 1.2 协议值。指纹(在此示例中表示为“12345678987654321”)用于选择要使用的证书。

Enable-VdaSSL -Enable
-CertificateThumbPrint "12345678987654321"
-SSLPort 400 -SSLMinVersion "TLS_1.2"
-SSLCipherSuite "All"

以下脚本禁用 VDA 上的 TLS 侦听器。

Enable-VdaSSL -Disable

在 VDA 上手动配置 TLS

在 VDA 上手动配置 TLS 时,您需要为每个 VDA 上的相应服务授予 TLS 证书私钥的通用读取权限:对于适用于 Windows 单会话操作系统的 VDA,为 NT SERVICE\PorticaService;对于适用于 Windows 多会话操作系统的 VDA,为 NT SERVICE\TermService。在安装 VDA 的计算机上:

步骤 1。启动 Microsoft 管理控制台 (MMC):开始 > 运行 > mmc.exe。

步骤 2。将“证书”管理单元添加到 MMC:

  1. 选择文件 > 添加/删除管理单元。
  2. 选择“证书”,然后单击“添加”。
  3. 当系统提示“此管理单元将始终管理以下证书:”时,选择“计算机帐户”,然后单击“下一步”。
  4. 当系统提示“选择此管理单元要管理的计算机”时,选择“本地计算机”,然后单击“完成”。

步骤 3。在“证书 (本地计算机)”>“个人”>“证书”下,右键单击证书,然后选择“所有任务”>“管理私钥”。

步骤 4。“访问控制列表编辑器”显示“(友好名称)私钥的权限”,其中(友好名称)是您的 TLS 证书的名称。添加以下服务之一并为其授予“读取”访问权限:

  • For a VDA for Windows Single-session OS, “PORTICASERVICE”
  • For a VDA for Windows Multi-session OS, “TERMSERVICE”

步骤 5。双击已安装的 TLS 证书。在证书对话框中,选择“详细信息”选项卡,然后滚动到底部。单击“指纹”。

STEP 6. Run regedit and go to HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd.

  1. 编辑 SSL Thumbprint 密钥,并将 TLS 证书指纹的值复制到此二进制值中。您可以安全地忽略“编辑二进制值”对话框中的未知项(例如“0000”和特殊字符)。
  2. 编辑 SSLEnabled 密钥,并将 DWORD 值更改为 1。(要稍后禁用 SSL,请将 DWORD 值更改为 0。)
  3. 如果要更改默认设置(可选),请在同一注册表路径中使用以下内容:

    SSLPort DWORD – SSL port number. Default: 443.

    SSLMinVersion DWORD – 1 = SSL 3.0, 2 = TLS 1.0, 3 = TLS 1.1, 4 = TLS 1.2. Default: 2 (TLS 1.0).

    SSLCipherSuite DWORD – 1 = GOV, 2 = COM, 3 = ALL. Default: 3 (ALL).

步骤 7. 如果 TLS TCP 和 UDP 端口不是默认的 443,请确保它们在 Windows 防火墙中处于打开状态。(在 Windows 防火墙中创建入站规则时,请确保其属性中选中了“允许连接”和“已启用”条目。)

步骤 8. 确保没有其他应用程序或服务(例如 IIS)正在使用 TLS TCP 端口。

步骤 9. 对于适用于 Windows 多会话操作系统的 VDA,请重新启动计算机以使更改生效。(您无需重新启动包含适用于 Windows 单会话操作系统的 VDA 的计算机。)

重要提示:

当 VDA 部署在 Windows Server 2012 R2、Windows Server 2016 或 Windows 10 周年更新版及更高版本支持的发行版上时,需要执行一个额外的步骤。这会影响来自适用于 Windows 的 Citrix Receiver(版本 4.6 至 4.9)、适用于 HTML5 的 Citrix Workspace 应用程序和适用于 Chrome 的 Citrix Workspace 应用程序的连接。其中也包括使用 Citrix Gateway 的连接。

如果配置了 Citrix Gateway 与 VDA 之间的 TLS,则使用 Citrix Gateway 的所有连接(适用于所有 VDA 版本)也需要此步骤。这会影响所有 Citrix Receiver™ 版本。

在 VDA 上(Windows Server 2012 R2、Windows Server 2016 或 Windows 10 周年更新版或更高版本),使用组策略编辑器,转到“计算机配置”>“策略”>“管理模板”>“网络”>“SSL 配置设置”>“SSL 密码套件顺序”。选择以下顺序:

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384_P384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256

注意:

前六项还指定了椭圆曲线,P384 或 P256。确保未选择“curve25519”。FIPS 模式不阻止使用“curve25519”。

配置此组策略设置后,VDA 仅在以下两个列表中都出现时才选择密码套件:组策略列表和所选合规模式(COM、GOV 或 ALL)的列表。密码套件还必须出现在客户端(Citrix Workspace 应用程序或 StoreFront)发送的列表中。

此组策略配置还会影响 VDA 上的其他 TLS 应用程序和服务。如果您的应用程序需要特定的密码套件,您可能需要将它们添加到此组策略列表中。

重要:

尽管组策略更改在应用时会显示,但 TLS 配置的组策略更改仅在操作系统重新启动后才会生效。因此,对于池化桌面,请将 TLS 配置的组策略更改应用到基础映像。

在交付组上配置 TLS

对于包含已配置为 TLS 连接的 VDA 的每个交付组,请完成此过程。

  1. 从管理控制台,打开 PowerShell 控制台。
  2. 运行 asnp Citrix.* 以加载 思杰 产品的 命令。
  3. Run Get-BrokerAccessPolicyRule -DesktopGroupName ‘<delivery-group-name>’ | Set-BrokerAccessPolicyRule -HdxSslEnabled $true.
  4. Run Set-BrokerSite -DnsResolutionEnabled $true.

故障排除

如果发生连接错误,请检查 VDA 上的系统事件日志。

使用适用于 Windows 的 Citrix Workspace 应用程序时,如果收到指示 TLS 错误的连接错误,请禁用 Desktop Viewer,然后尝试重新连接。尽管连接仍然失败,但可能会提供有关底层 TLS 问题的解释。例如,您在向证书颁发机构请求证书时指定了不正确的模板。

大多数使用 HDX™ 自适应传输的配置都可以成功使用 DTLS,包括使用最新版本的 Citrix Workspace 应用程序、Citrix Gateway 和 VDA 的配置。某些在 Citrix Workspace 应用程序和 Citrix Gateway 之间以及在 Citrix Gateway 和 VDA 之间使用 DTLS 的配置需要额外操作。

如果出现以下情况,则需要采取额外措施:

  • 思杰接收器版本支持 HDX 自适应传输和 DTLS:适用于 Windows 的接收器 (4.7, 4.8, 4.9)、适用于 Mac 的接收器 (12.5, 12.6, 12.7)、适用于 iOS 的接收器 (7.2, 7.3.x) 或适用于 Linux 的接收器 (13.7)

并且以下任一情况也适用:

  • Citrix Gateway 版本支持 DTLS 到 VDA,但 VDA 版本不支持 DTLS(版本 7.15 或更早版本),

  • VDA 版本支持 DTLS(版本 7.16 或更高版本),但 Citrix Gateway 版本不支持 DTLS 到 VDA。

为避免 Citrix Receiver 连接失败,请执行以下操作之一:

  • 将 Citrix Receiver 更新到适用于 Windows 的 Receiver 4.10 或更高版本、适用于 Mac 的 Receiver 12.8 或更高版本,或适用于 iOS 的 Receiver 7.5 或更高版本;或者,
  • 将 Citrix Gateway 更新到支持与 VDA 建立 DTLS 连接的版本;或者,
  • 将 VDA 更新到 7.16 或更高版本;或者,
  • 在 VDA 上禁用 DTLS;或者,
  • 禁用 HDX 自适应传输。

注意:

适用于 Linux 的 Receiver 尚无合适的更新。适用于 Android 的 Receiver(版本 3.12.3)不支持通过 Citrix Gateway 的 HDX 自适应传输和 DTLS,因此不受影响。

要在 VDA 上禁用 DTLS,请修改 VDA 防火墙配置以禁用 UDP 端口 443。请参阅网络端口

控制器与 VDA 之间的通信

Windows Communication Framework (WCF) 消息级保护可确保 Controller 与 VDA 之间的通信安全。不需要使用 TLS 进行额外的传输级保护。WCF 配置使用 Kerberos 在 Controller 和 VDA 之间进行相互身份验证。加密使用 256 位密钥的 CBC 模式下的 AES。消息完整性使用 SHA-1。

根据 Microsoft 的说法,WCF 使用的安全性 协议 符合 OASIS(结构化信息标准促进组织)的标准,包括 WS-SecurityPolicy 1.2。此外,Microsoft 表示 WCF 支持 安全策略 1.2 中列出的所有算法套件。

Controller 与 VDA 之间的通信使用 basic256 算法套件,其算法如上所述。

TLS 与 HTML5 视频重定向以及浏览器内容重定向

您可以使用 HTML5 视频重定向和浏览器内容重定向来重定向 HTTPS 网站。注入到这些网站中的 JavaScript 必须与在 VDA 上运行的 Citrix HDX HTML5 视频重定向服务建立 TLS 连接。为此,HTML5 视频重定向服务会在 VDA 上的证书存储中生成两个自定义证书。停止该服务会删除这些证书。

HTML5 视频重定向策略默认处于禁用状态。

浏览器内容重定向默认处于启用状态。

有关 HTML5 视频重定向的更多信息,请参阅 多媒体策略设置

传输层安全 (TLS)