传输层安全 (TLS)
Citrix 虚拟应用和桌面 支持用于组件之间基于 TCP 的连接的传输层安全 (TLS) 协议。Citrix 虚拟应用和桌面 还支持用于基于 UDP 的 ICA/HDX 连接的数据报传输层安全 (DTLS) 协议,使用 自适应传输。
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 服务通过使用服务器证书(而非客户端证书)支持 TLS 功能。本节介绍如何在 Delivery Controller 中获取和安装 TLS 证书。相同的步骤也可应用于 Cloud Connector,以加密 STA 和 XML 流量。
尽管有各种不同类型的证书颁发机构以及从它们请求证书的方法,但本文介绍 Microsoft 证书颁发机构。Microsoft 证书颁发机构需要发布一个用途为服务器身份验证的证书模板。
如果 Microsoft 证书颁发机构集成到 Active Directory 域中或集成到 Delivery Controller 所加入的受信任林中,您可以从“证书 MMC 管理单元”的“证书注册向导”中获取证书。
证书的请求、获取与安装
- 在 Delivery Controller™ 上,打开 MMC 控制台并添加“证书”管理单元。出现提示时,选择“计算机帐户”。
-
展开 个人 > 证书,然后使用“所有任务 > 请求新证书”上下文菜单命令。

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

-
要为证书模板提供更多详细信息,请单击“详细信息”箭头按钮并配置以下内容:
主题名称:选择“公用名”并添加 Delivery Controller 的完全限定域名。
备用名称:选择域名系统并添加 Delivery Controller 的完全限定域名。

配置 SSL/TLS 侦听器端口
如果 IIS Windows 组件(作为 Web Studio 和 Director 的一部分安装在同一服务器上)已安装,则可以使用 IIS 配置 TLS。有关详细信息,请参阅在 Web Studio 和 Director 上启用 TLS。否则,要使用 PowerShell 配置证书,请执行以下操作:
-
要检查是否存在已绑定的现有证书,请打开命令提示符并运行
netsh http show sslcert:netsh http show sslcert <!--NeedCopy--> -
如果存在现有绑定,则将其删除。
netsh http delete sslcert ipport=0.0.0.0:443 <!--NeedCopy-->将
0.0.0.0:443替换为特定的 IP 地址和端口(如果现有绑定中指定了此类地址和端口)。 -
查找您之前安装的证书的指纹。要查看指纹,请打开管理计算机证书,浏览到该证书并将其打开,然后转到详细信息选项卡。

或者,您可以使用 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-->如果存在多个具有指定友好名称的证书,则此操作将返回多个连接在一起的指纹,您必须选择相应的指纹。
-
要将证书绑定到端口,请使用
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:Citrix 代理服务 的全局唯一标识符。注意:
续订证书或重新绑定时,请使用与 Broker Service 关联的特定
appid,而不是任意 GUID。查找 Citrix 代理服务 的正确
appid:-
以管理员身份打开 PowerShell 命令窗口并运行以下命令:
Get-WmiObject -Class Win32_Product | Select-String -Pattern "broker" <!--NeedCopy--> -
在输出中找到 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_SHA384 或 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 密码套件(或两者);并且这些密码套件必须位于任何 TLS_DHE_ 密码套件之前。
- 使用 Microsoft 组策略编辑器,浏览到 计算机配置 > 管理模板 > 网络 > SSL 配置设置。
- 编辑策略“SSL 密码套件顺序”。默认情况下,此策略设置为“未配置”。将此策略设置为“已启用”。
- 按正确顺序排列套件;移除任何您不想使用的密码套件。
确保 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 或 TLS_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 流量,请创建一个名为 XmlServicesEnableNonSsl 的 DWORD 类型值,并将其数值设置为 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.3。指定允许的最低版本;允许使用该版本或更高版本的所有协议连接。
例如,如果将 TLS 1.1 指定为最低版本,则允许 TLS 1.1 和 TLS 1.3 协议连接。如果将 SSL 3.0 指定为最低版本,则允许所有受支持版本的连接。如果将 TLS 1.3 指定为最低版本,则只允许 TLS 1.3 连接。
DTLS 1.0 corresponds to TLS 1.1, and DTLS 1.3 corresponds to TLS 1.3.
-
允许的 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 标准模式 | 关闭 | 关闭 | 关闭 | 开启 | 开启 | 开启 |
| 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 密码支持。
请求和安装证书的方法
- 在 VDA 上,打开 MMC 控制台并添加“证书”管理单元。出现提示时,选择“计算机帐户”。
- 展开 “个人”>“证书”,然后使用上下文菜单命令 “所有任务”>“请求新证书”。
- 单击 “下一步” 开始,然后再次单击 “下一步” 确认您正在从 Active Directory 注册获取证书。
-
选择服务器身份验证证书的模板。默认的 Windows “计算机” 或 “Web 服务器可导出” 均可接受。如果模板已设置为自动提供主题的值,则无需提供更多详细信息即可单击 “注册”。

-
要为证书模板提供更多详细信息,请单击 “详细信息” 并配置以下内容:
主题名称 — 选择类型 “公用名” 并添加 VDA 的 FQDN
备用名称 — 选择类型 “DNS” 并添加 VDA 的 FQDN

注意:
使用 Active Directory 证书服务证书自动注册来自动向 VDA 颁发和部署证书。这在 https://support.citrix.com/article/CTX205473 中进行了描述。
您可以使用通配符证书,允许单个证书保护多个 VDA:
主题名称 — 选择类型“通用名称”并输入 VDAs 的 *.primary.domain
备用名称 — 选择类型“域名系统”并添加 VDA 的 *.primary.domain

您可以使用 SAN 证书来允许单个证书保护多个特定的 VDA:
主题名称 — 选择类型“通用名称”并输入一个字符串以帮助识别证书用途
备用名称 — 选择类型“DNS”并为每个 VDA 的 FQDN 添加一个条目。将备用名称的数量保持在最低限度,以确保最佳的 TLS 协商。

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

Configure TLS on a VDA using the PowerShell script
在证书存储的“本地计算机”>“个人”>“证书”区域中安装 TLS 证书。如果该位置存在多个证书,请向 PowerShell 脚本提供证书的指纹。
注意:
从 XenApp 和 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 防火墙规则:
- 思杰 ICA (默认端口号: 1494)
- 思杰 CGP (默认端口号: 2598)
- 思杰网络套接字(默认端口: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 参数是必需的。如果指定此参数,则其他参数均无效。 |
| CertificateThumbPrint “ |
证书存储中 TLS 证书的指纹,用引号括起来。脚本使用指定的指纹来选择要使用的证书。如果省略此参数,则会选择不正确的证书。 |
| SSLPort |
TLS 端口。默认值: 443 |
| SSLMinVersion “ |
最低 TLS 协议版本,用引号括起来。有效值: “TLS_1.0”(默认)、“TLS_1.1”和“TLS_1.3”。 |
| SSLCipherSuite “ |
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.3"
-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:
- 选择文件 > 添加/删除管理单元。
- 选择“证书”,然后单击“添加”。
- 当系统提示“此管理单元将始终管理以下对象的证书:”时,选择“计算机帐户”,然后单击“下一步”。
- 当系统提示“选择此管理单元要管理的计算机”时,选择“本地计算机”,然后单击“完成”。
步骤 3。在“证书 (本地计算机)”>“个人”>“证书”下,右键单击证书,然后选择“所有任务”>“管理私钥”。
步骤 4。访问控制列表编辑器显示“(友好名称)私钥的权限”,其中(友好名称)是您的 TLS 证书的名称。添加以下服务之一并为其授予“读取”访问权限:
- 对于适用于 Windows 单会话操作系统的 VDA,其服务名称为“PORTICASERVICE”
- 对于适用于 Windows 多会话操作系统的 VDA,其服务名称为“TERMSERVICE”
步骤 5。双击已安装的 TLS 证书。在证书对话框中,选择“详细信息”选项卡,然后滚动到底部。单击“指纹”。
STEP 6. Run regedit and go to HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd.
- 编辑 SSL Thumbprint 密钥,并将 TLS 证书指纹的值复制到此二进制值中。您可以安全地忽略“编辑二进制值”对话框中的未知项(例如“0000”和特殊字符)。
- 编辑 SSLEnabled 密钥,并将 DWORD 值更改为 1。(要稍后禁用 SSL,请将 DWORD 值更改为 0。)
-
如果要更改默认设置(可选),请在同一注册表路径中使用以下设置:
SSLPort DWORD:SSL 协议的端口号。默认值为 443。
SSLMinVersion DWORD:当值为 1 时,表示 SSL 3.0;当值为 2 时,表示 TLS 1.0;当值为 3 时,表示 TLS 1.1;当值为 4 时,表示 TLS 1.3。默认设置的值为 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 的计算机。)
重要提示:
An extra step is necessary when the VDA is on Windows Server 2012 R2, Windows Server 2016, or Windows 10 Anniversary Edition or later supported release. This affects connections from Citrix Receiver for Windows (version 4.6 through 4.9), Citrix Workspace app for HTML5, and Citrix Workspace app for Chrome. This also includes connections using 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 的每个交付组,请完成此过程。
- From Studio, open the PowerShell console.
- Run asnp Citrix.* to load the Citrix product cmdlets.
- Run Get-BrokerAccessPolicyRule -DesktopGroupName ‘<delivery-group-name>’ | Set-BrokerAccessPolicyRule -HdxSslEnabled $true.
- 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 的配置需要额外操作。
如果出现以下情况,则需要采取额外措施:
- Citrix Receiver 版本支持 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 版本支持到 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 更新到支持 DTLS 与 VDA 通信的版本;或者,
- 将 VDA 更新到 7.16 或更高版本;或者,
- 在 VDA 上禁用 DTLS;或者,
- 禁用 HDX 自适应传输。
注意:
适用于 Linux 的 Receiver 尚无合适的更新。适用于 Android 的 Receiver(版本 3.12.3)不支持通过 Citrix Gateway 的 HDX 自适应传输和 DTLS,因此不受影响。
要在 VDA 上禁用 DTLS,请修改 VDA 防火墙配置以禁用 UDP 端口 443。请参阅网络端口。
控制器与虚拟交付代理之间的通信
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 视频重定向的更多信息,请参阅 (/zh-cn/citrix-virtual-apps-desktops/2311/policies/reference/ica-policy-settings/multimedia-policy-settings.html#html5-video-redirection)。