传输层安全性 (TLS)

Last published : Nov 13, 2026
Citrix Virtual Apps and Desktops 支持传输层安全性 (TLS) 协议,用于组件之间基于 TCP 的连接。Citrix Virtual Apps and Desktops 还支持数据报传输层安全性 (DTLS) 协议,用于基于 UDP 的 ICA/HDX 连接,使用 (/zh-cn/citrix-virtual-apps-desktops/2203-ltsr/technical-overview/hdx/adaptive-transport.html)。
TLS 和 DTLS 相似,并且支持相同的数字证书。将 Citrix Virtual Apps 或 Citrix Virtual Desktops™ 站点配置为使用 TLS 也会将其配置为使用 DTLS。请使用以下过程;除非另有说明,否则这些步骤对 TLS 和 DTLS 均适用:
  • 在所有 Delivery Controller 上获取、安装和注册服务器证书,并使用 TLS 证书配置端口。有关详细信息,请参阅 (/zh-cn/citrix-virtual-apps-desktops/2203-ltsr/secure/tls.html#install-tls-server-certificates-on-controllers)。
    您可以选择更改 Controller 用于侦听 HTTP 和 HTTPS 流量的端口。
  • 通过完成以下任务,在 Citrix Workspace™ 应用程序和 Virtual Delivery Agent (VDA) 之间启用 TLS 连接:
    • 在安装 VDA 的计算机上配置 TLS。(为方便起见,以后将安装 VDA 的计算机简称为“VDA”。)有关常规信息,请参阅 (/zh-cn/citrix-virtual-apps-desktops/2203-ltsr/secure/tls.html#tls-settings-on-vdas)。强烈建议您使用 Citrix 提供的 PowerShell 脚本来配置 TLS/DTLS。有关详细信息,请参阅 (/zh-cn/citrix-virtual-apps-desktops/2203-ltsr/secure/tls.html#configure-tls-on-a-vda-using-the-powershell-script)。但是,如果您想手动配置 TLS/DTLS,请参阅 (/zh-cn/citrix-virtual-apps-desktops/2203-ltsr/secure/tls.html#manually-configure-tls-on-a-vda)。
    • 通过在 Studio 中运行一组 PowerShell cmdlet,在包含 VDA 的交付组中配置 TLS。有关详细信息,请参阅 (/zh-cn/citrix-virtual-apps-desktops/2203-ltsr/secure/tls.html#configure-tls-on-delivery-groups)。
      要求和注意事项:
      • 在用户和 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 证书管理单元
  3. 单击“下一步”开始,然后单击“下一步”确认您正在从 Active Directory 注册获取证书。
  4. 选择服务器身份验证证书的模板。如果模板已设置为自动提供主题的值,则无需提供更多详细信息即可单击“注册”。
    请求证书对话框
  5. 要为证书模板提供更多详细信息,请单击“详细信息”箭头按钮并配置以下内容:
    主题名称:选择“公用名”并添加 Delivery Controller 的 FQDN。
    备用名称:选择“DNS”并添加 Delivery Controller 的 FQDN。
    证书属性

配置 SSL/TLS 侦听器端口

如果 IIS Windows 组件安装在同一服务器上(作为 Web Studio 和 Director 的一部分安装),则可以使用 IIS 配置 TLS。有关详细信息,请参阅在 Web Studio 和 Director 上启用 TLS。否则,要使用 PowerShell 配置证书,请执行以下操作:
  1. 要检查是否存在已绑定的证书,请打开命令提示符并运行 netsh http show sslcert:
    netsh http show sslcert
  2. 如果存在现有绑定,请将其删除。
    netsh http delete sslcert ipport=0.0.0.0:443
    如果现有绑定中指定了 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
    如果证书公用名与主机名不匹配,则此操作将失败。如果主机名存在多个证书,则此操作将返回多个连接在一起的指纹,您必须选择相应的指纹。
    以下示例按友好名称查找证书:
    $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
    如果存在多个具有指定友好名称的证书,则此操作将返回多个连接在一起的指纹,您必须选择相应的指纹。
  4. 要将证书绑定到端口,请使用 netsh http add sslcert 命令:
    netsh http add sslcert ipport=[IP address]:443 certhash=[certificate hash] appid=[application GUID] disablelegacytls=enable
    • ipport:IP 地址和端口。使用 0.0.0.0:443 将其应用于所有 IP 地址。您也可以指定特定的 IP 地址。
    • certhash:您在上一步中确定的证书指纹。
    • appid: Citrix Broker 服务的 GUID。
      注意:
      续订证书或重新绑定时,请使用与 Broker Service 关联的特定 appid,而不是任意 GUID。
      要查找 Citrix Broker Service 的正确 appid:
      1. 以管理员身份打开 PowerShell 命令窗口并运行以下命令:
        Get-WmiObject -Class Win32_Product | Select-String -Pattern "broker"
      2. 在输出中找到 Citrix Broker Service 的 IdentifyingNumber (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
启用 HTTPS 后,您应配置任何 StoreFront 部署 和 Netscaler Gateway 以使用 HTTPS 而不是 HTTP 连接到交付控制器。
注意:
如果控制器安装在 Windows Server 2016 上,并且 StoreFront 安装在 Windows Server 2012 R2 上,则需要在控制器上进行配置更改,以更改 TLS 密码套件的顺序。对于控制器和 StoreFront 与其他 Windows Server 版本组合的情况,则不需要此配置更改。
密码套件顺序列表必须包含 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 或 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 密码套件(或两者);并且这些密码套件必须位于任何 TLS_DHE_ 密码套件之前。
  1. 使用 Microsoft 组策略编辑器,浏览到 计算机配置 > 管理模板 > 网络 > SSL 配置设置。
  2. 编辑策略“SSL 密码套件顺序”。默认情况下,此策略设置为“未配置”。将此策略设置为“已启用”。
  3. 按正确顺序排列套件;删除任何您不想使用的密码套件。
确保 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 或 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 位于任何 TLS_DHE_ 密码套件之前。
在 Microsoft 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

仅强制执行 HTTPS 流量

如果您希望 XML Service 忽略 HTTP 流量,请在 Controller 上的 HKLM\Software\Citrix\DesktopServer\ 中创建以下注册表设置,然后重新启动 Broker Service。
要忽略 HTTP 流量,请创建 DWORD XmlServicesEnableNonSsl 并将其设置为 0。
您可以创建一个相应的注册表 DWORD 值来忽略 HTTPS 流量:DWORD XmlServicesEnableSsl。确保其未设置为 0。

VDA 上的 TLS 设置

交付组不能混合配置了 TLS 的 VDA 和未配置 TLS 的 VDA。在为交付组配置 TLS 之前,请确保已为该交付组中的所有 VDA 配置了 TLS。
在 VDA 上配置 TLS 时,已安装的 TLS 证书的权限会发生更改,从而授予 ICA® Service 对证书私钥的读取访问权限,并通知 ICA Service 以下信息:
  • 证书存储中用于 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 密码套件 ALL COM GOV ALL COM GOV
FIPS 模式 关闭 关闭 关闭 开 开 开
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
* 不支持 Windows Server 2012 R2。
注意:
VDA 不支持 DHE 密码套件(例如,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384、TLS_DHE_RSA_WITH_AES_256_CBC_SHA、TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 和 TLS_DHE_RSA_WITH_AES_128_CBC_SHA)。如果由 Windows 选择,Receiver 可能无法使用它们。
如果您正在使用 Citrix Gateway,请参阅 Citrix ADC 文档,了解有关后端通信的密码套件支持信息。有关 TLS 密码套件支持的信息,请参阅 Citrix ADC 设备上可用的密码。有关 DTLS 密码套件支持的信息,请参阅 DTLS 密码支持。

请求和安装证书

  1. 在 VDA 上,打开 MMC 控制台并添加“证书”管理单元。出现提示时,选择“计算机帐户”。
  2. 展开 个人 > 证书,然后使用上下文菜单命令 所有任务 > 请求新证书。
  3. 单击 下一步 开始,并单击 下一步 确认您正在从 Active Directory 注册获取证书。
  4. 选择服务器身份验证证书的模板。默认的 Windows 计算机 或 Web 服务器可导出 均可接受。如果模板已设置为自动提供主题的值,则无需提供更多详细信息即可单击 注册。
    请求证书对话框
  5. 要为证书模板提供更多详细信息,请单击 详细信息 并配置以下内容:
    主题名称 — 选择类型 公用名 并添加 VDA 的 FQDN
    备用名称 — 选择类型 DNS 并添加 VDA 的 FQDN
    证书属性
    注意:
    使用 Active Directory 证书服务证书自动注册来自动颁发和部署证书到 VDA。这在 <https://support.citrix.com/article/CTX205473> 中进行了描述。
    您可以使用通配符证书来允许单个证书保护多个 VDA:
    主题名称 — 选择类型 通用名称 并输入 VDA 的 *.primary.domain
    备用名称 — 选择类型 DNS 并添加 VDA 的 *.primary.domain
    请求通配符证书对话框
    您可以使用 SAN 证书来允许单个证书保护多个特定的 VDA:
    主题名称 — 选择类型 通用名称 并输入一个字符串以帮助识别证书用途
    备用名称 — 选择类型 DNS 并为每个 VDA 的 FQDN 添加一个条目。将备用名称的数量保持在最低限度,以确保最佳的 TLS 协商。
    请求证书对话框
    注意:
    通配符证书和 SAN 证书都要求在“私钥”选项卡上选择 允许导出私钥:
    请求证书对话框

使用 PowerShell 脚本在 VDA 上配置 TLS

将 TLS 证书安装在证书存储的“本地计算机”>“个人”>“证书”区域中。如果该位置存在多个证书,请向 PowerShell 脚本提供证书的指纹。
注意:
从 XenApp and XenDesktop 7.16 LTSR 开始,PowerShell 脚本会根据 VDA 的 FQDN 查找正确的证书。当 VDA FQDN 只有一个证书时,您无需提供指纹。
Enable-VdaSSL.ps1 脚本用于在 VDA 上启用或禁用 TLS 侦听器。此脚本位于安装介质的 Support > Tools > SslSupport 文件夹中。
启用 TLS 时,DHE 密码套件将被禁用。ECDHE 密码套件不受影响。
启用 TLS 时,脚本会禁用指定 TCP 端口的所有现有 Windows 防火墙规则。然后,它会添加一条新规则,允许 ICA 服务仅在 TLS TCP 和 UDP 端口上接受传入连接。它还会禁用以下 Windows 防火墙规则:
  • Citrix ICA(默认值:1494)
  • Citrix CGP(默认值:2598)
  • Citrix WebSocket(默认值: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 侦听器。此参数或 Disable 参数是必需的。
禁用 禁用 VDA 上的 TLS 侦听器。此参数或 Enable 参数是必需的。如果指定此参数,则其他参数无效。
证书指纹 "<thumbprint>" 证书存储中 TLS 证书的指纹,用引号引起来。脚本使用指定的指纹选择要使用的证书。如果省略此参数,则会选择不正确的证书。
SSL端口 <port> TLS 端口。默认值:443
SSL最低版本 "<version>" 最低 TLS 协议版本,用引号引起来。有效值:“TLS_1.0”(默认)、“TLS_1.1”和“TLS_1.2”。
SSL密码套件 "<suite>" 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 证书的名称。添加以下服务之一并为其授予“读取”访问权限:
  • 对于 Windows 单会话操作系统 VDA,“PORTICASERVICE”
  • 对于 Windows 多会话操作系统 VDA,“TERMSERVICE”
步骤 5。双击已安装的 TLS 证书。在证书对话框中,选择“详细信息”选项卡,然后滚动到底部。单击“指纹”。
步骤 6。运行 regedit 并转到 HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd。
  1. 编辑 SSL Thumbprint 密钥,并将 TLS 证书指纹的值复制到此二进制值中。您可以安全地忽略“编辑二进制值”对话框中的未知项(例如“0000”和特殊字符)。
  2. 编辑 SSLEnabled 密钥并将 DWORD 值更改为 1。(要稍后禁用 SSL,请将 DWORD 值更改为 0。)
  3. 如果要更改默认设置(可选),请在同一注册表路径中使用以下内容:
    SSLPort DWORD – SSL 端口号。默认值:443。
    SSLMinVersion DWORD – 1 = SSL 3.0,2 = TLS 1.0,3 = TLS 1.1,4 = TLS 1.2。默认值:2 (TLS 1.0)。
    SSLCipherSuite DWORD – 1 = GOV,2 = COM,3 = ALL。默认值: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. 从 Studio 打开 PowerShell 控制台。
  2. 运行 asnp Citrix.* 以加载 Citrix 产品 cmdlet。
  3. 运行 Get-BrokerAccessPolicyRule -DesktopGroupName '\<delivery-group-name>' \| Set-BrokerAccessPolicyRule -HdxSslEnabled $true。
  4. 运行 Set-BrokerSite -DnsResolutionEnabled $true。

故障排除

如果发生连接错误,请检查 VDA 上的系统事件日志。
使用适用于 Windows 的 Citrix Workspace 应用程序时,如果收到指示 TLS 错误的连接错误,请禁用 Desktop Viewer,然后尝试重新连接。尽管连接仍然失败,但可能会提供有关底层 TLS 问题的解释。(例如,在向证书颁发机构请求证书时指定了不正确的模板。)
大多数使用 HDX™ 自适应传输的配置都可以成功使用 DTLS,包括使用最新版本的 Citrix Workspace 应用程序、Citrix Gateway 和 VDA 的配置。某些在 Citrix Workspace 应用程序和 Citrix Gateway 之间使用 DTLS 以及在 Citrix Gateway 和 VDA 之间使用 DTLS 的配置需要额外操作。
在以下情况下需要额外操作:
  • Citrix Receiver 版本支持 HDX 自适应传输和 DTLS:适用于 Windows 的 Receiver (4.7, 4.8, 4.9)、适用于 Mac 的 Receiver (12.5, 12.6, 12.7)、适用于 iOS 的 Receiver (7.2, 7.3.x) 或适用于 Linux 的 Receiver (13.7)
并且以下任一情况也适用:
  • Citrix Gateway 版本支持到 VDA 的 DTLS,但 VDA 版本不支持 DTLS(版本 7.15 或更早版本),
  • VDA 版本支持 DTLS(版本 7.16 或更高版本),但 Citrix Gateway 版本不支持到 VDA 的 DTLS。
为避免 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。请参阅网络端口。

Controller 与 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 视频重定向的详细信息,请参阅多媒体策略设置。