安全密钥
注意:
-
您必须将此功能与 StoreFront™ 1912 LTSR CU2 或更高版本结合使用。
-
安全 XML 功能仅在 Citrix ADC 和 Citrix Gateway 12.1 及更高版本上受支持。
此功能允许您仅授权经批准的 StoreFront 和 Citrix Gateway 计算机与 Citrix Delivery Controllers 通信。启用此功能后,任何不包含密钥的请求都将被阻止。使用此功能可增加一层安全性,以防范源自内部网络的攻击。
使用此功能的通用工作流程如下:
-
在 Studio 中显示安全密钥设置。(使用 Remote PowerShell SDK)
-
为您的部署配置设置。(使用 Studio 或 Remote PowerShell SDK)。
-
在 StoreFront 中配置设置。(使用 PowerShell)。
-
在 Citrix ADC 中配置设置。
为您的部署配置设置
您可以使用 Studio 或 PowerShell 为您的部署配置设置。
使用 Studio
启用该功能后,导航到“设置 > 站点设置 > 管理安全密钥”,然后单击“编辑”。此时将显示“管理安全密钥”刀片。单击“保存”以应用更改并退出刀片。
重要提示:
-
有两个可用的密钥。您可以对通过 XML 和 STA 端口进行的通信使用相同密钥或不同密钥。我们建议您一次只使用一个密钥。未使用的密钥仅用于密钥轮换。
-
请勿单击刷新图标来更新已在使用的密钥。否则,服务将中断。
单击刷新图标以生成新密钥。
要求通过 XML 端口进行通信时使用密钥(仅限 StoreFront)。如果选中此选项,则要求使用密钥对通过 XML 端口进行的通信进行身份验证。StoreFront 通过此端口与 Citrix Cloud 通信。有关更改 XML 端口的信息,请参阅知识中心文章 CTX127945。
要求通过 STA 端口进行通信时使用密钥。如果选中此选项,则要求使用密钥对通过 STA 端口进行的通信进行身份验证。Citrix Gateway 和 StoreFront 通过此端口与 Citrix Cloud 通信。有关更改 STA 端口的信息,请参阅知识中心文章 CTX101988。
应用更改后,单击“关闭”以退出“管理安全密钥”边栏。
使用远程 PowerShell SDK
以下 PowerShell 步骤等同于在 Studio 中执行的操作。
-
运行远程 PowerShell SDK。
-
在命令窗口中,运行以下命令:
-
Add-PSSnapIn Citrix*
-
-
运行以下命令以生成密钥并设置 Key1:
-
New-BrokerXmlServiceKey -
Set-BrokerSite -XmlServiceKey1 <the key you generated>
-
-
运行以下命令以生成密钥并设置 Key2:
-
New-BrokerXmlServiceKey -
Set-BrokerSite -XmlServiceKey2 <the key you generated>
-
-
运行以下一个或两个命令以启用密钥用于身份验证通信:
-
要通过 XML 端口验证通信:
-
Set-BrokerSite -RequireXmlServiceKeyForNFuse $true
-
-
要通过 STA 端口验证通信:
-
Set-BrokerSite -RequireXmlServiceKeyForSta $true
-
-
有关指导和语法,请参阅 PowerShell 命令帮助。
在 StoreFront 中配置设置
完成部署设置后,您需要使用 PowerShell 在 StoreFront 中配置相关设置。
在 StoreFront 服务器上,运行以下 PowerShell 命令:
要配置通过 XML 端口进行通信的密钥,请使用命令 Set-STFStoreFarm。例如:
$store = Get-STFStoreService -VirtualPath [Path to store]
$farm = Get-STFStoreFarm -StoreService $store -FarmName [Resource feed name]
Set-STFStoreFarm -Farm $farm -XMLValidationEnabled $true -XMLValidationSecret [secret]
为以下参数输入相应的值:
-
Path to store -
Resource feed name -
secret
要配置通过 STA 端口进行通信的密钥,请使用
New-STFSecureTicketAuthority 和 Set-STFRoamingGateway 命令。例如:
$gateway = Get-STFRoamingGateway -Name [Gateway name]
$sta1 = New-STFSecureTicketAuthority -StaUrl [STA1 URL] -StaValidationEnabled $true -StaValidationSecret [secret]
$sta2 = New-STFSecureTicketAuthority -StaUrl [STA2 URL] -StaValidationEnabled $true -StaValidationSecret [secret]
Set-STFRoamingGateway -Gateway $gateway -SecureTicketAuthorityObjs $sta1,$sta2
为以下参数输入相应的值:
-
Gateway name -
STA URL -
Secret
有关指导和语法,请参阅 PowerShell 命令帮助。
在 Citrix ADC 中配置设置
注意:
除非您使用 Citrix ADC 作为网关,否则无需在 Citrix ADC 中配置此功能。如果您使用 Citrix ADC,请按照以下步骤操作。
-
确保已完成以下先决条件配置:
-
已配置以下 Citrix ADC 相关 IP 地址。
-
用于访问 Citrix ADC 控制台的 Citrix ADC 管理 IP (NSIP) 地址。有关详细信息,请参阅 配置 NSIP 地址。
-
子网 IP (SNIP) 地址,用于启用 Citrix ADC 设备与后端服务器之间的通信。有关详细信息,请参阅 配置子网 IP 地址。
-
Citrix Gateway 虚拟 IP 地址和负载均衡器虚拟 IP 地址,用于登录 ADC 设备以启动会话。有关详细信息,请参阅 创建虚拟服务器。

-
-
Citrix ADC 设备中所需的模式和功能已启用。
-
要启用这些模式,请在 Citrix ADC GUI 中转到 System > Settings > Configure Mode。
-
要启用这些功能,请在 Citrix ADC GUI 中转到 System > Settings > Configure Basic Features。
-
-
证书相关配置已完成。
-
证书签名请求 (CSR) 已创建。有关详细信息,请参阅 创建证书。
-
服务器证书、CA 证书和根证书已安装。有关详细信息,请参阅 安装、链接和更新。

-
已为 Citrix DaaS(以前称为 Citrix Virtual Apps and Desktops 服务)创建 Citrix Gateway。通过单击“测试 STA 连接”按钮测试连接,以确认虚拟服务器在线。有关详细信息,请参阅 为 Citrix Virtual Apps and Desktops 设置 Citrix ADC。

-
-
-
添加重写操作。有关详细信息,请参阅 配置重写操作。
-
请转到 AppExpert > Rewrite > Actions。
-
单击 添加 以添加新的重写操作。您可以将操作命名为“set Type to INSERT_HTTP_HEADER”。
-
在 类型 中,选择 INSERT_HTTP_HEADER。
-
在 标头名称 中,输入 X-Citrix-XmlServiceKey。
-
在 表达式 中,添加
<XmlServiceKey1 value>并带引号。您可以从您的 Desktop Delivery Controller™ 配置中复制 XmlServiceKey1 值。

-
-
添加重写策略。有关详细信息,请参阅配置重写策略。
-
请转到 AppExpert > Rewrite > Policies。
-
单击 添加 以添加新策略。
-
在 操作 中,选择上一步中创建的操作。
-
在 表达式 中,添加 HTTP.REQ.IS_VALID。
-
单击 确定。
-
-
设置负载平衡。您必须为每个 STA 服务器配置一个负载平衡虚拟服务器。否则会话将无法启动。有关详细信息,请参阅设置基本负载平衡。
-
创建负载平衡虚拟服务器。
-
转到 流量管理 > 负载平衡 > 服务器。
-
在 虚拟服务器 页面中,单击 添加。
-
在 协议 中,选择 HTTP。
-
添加负载平衡虚拟 IP 地址,并在 端口 中选择 80。
-
单击 确定。
-
-
创建负载平衡服务。
-
转到 流量管理 > 负载平衡 > 服务。
-
在 现有服务器 中,选择上一步中创建的虚拟服务器。
-
在 协议 中,选择 HTTP,并在 端口 中选择 80。
-
单击 确定,然后单击 完成。
-
-
将服务绑定到虚拟服务器。
-
选择之前创建的虚拟服务器,然后单击“编辑”。
-
在“服务和服务组”中,单击“无负载平衡虚拟服务器服务绑定”。
绑定服务到虚拟服务器(/en-us/citrix-daas/media/adc-bind-service-to-lbvserver.png)-
在“服务绑定”中,选择之前创建的 Citrix DaaS™。
-
单击“绑定”。
-
-
将之前创建的重写策略绑定到虚拟服务器。
-
选择之前创建的虚拟服务器,然后单击“编辑”。
-
在“高级设置”中,单击“策略”,然后在“策略”部分单击“+”。
绑定重写策略(/en-us/citrix-daas/media/adc-bind-rewrite-policy.png)-
在“选择策略”中,选择“重写”,并在“选择类型”中,选择“请求”。
-
单击“继续”。
-
在“选择策略”中,选择之前创建的重写策略。
-
单击“绑定”。
-
单击“完成”。
-
-
如有必要,为虚拟服务器设置持久性。
-
选择之前创建的虚拟服务器,然后单击编辑。
-
在高级设置中,单击持久性。
-
选择持久性类型为其他。
-
选择 DESTIP 以根据虚拟服务器选择的服务 IP 地址(目标 IP 地址)创建持久性会话
-
在 IPv4 子网掩码中,添加与 DDC 相同的网络掩码。
-
单击确定。
-
-
对其他虚拟服务器也重复这些步骤。
-
如果 Citrix ADC 设备已配置 Citrix DaaS,则需要进行的配置更改
如果您已将 Citrix ADC 设备配置为使用 Citrix DaaS,则要使用安全 XML 功能,必须进行以下配置更改。
-
在会话启动之前,更改网关的安全票证颁发机构 URL,以使用负载平衡虚拟服务器的 FQDN。
-
确保
TrustRequestsSentToTheXmlServicePort参数设置为 False。默认情况下,TrustRequestsSentToTheXmlServicePort参数设置为 False。但是,如果客户已为 Citrix DaaS 配置了 Citrix ADC,则TrustRequestsSentToTheXmlServicePort设置为 True。
-
在 Citrix ADC GUI 中,转到配置 > 与 Citrix 产品集成,然后单击 XenApp and XenDesktop®。
-
选择网关实例,然后单击编辑图标。

-
在 StoreFront 窗格中,单击编辑图标。编辑 StoreFront 详细信息(/en-us/citrix-daas/media/edit-storefront-details.png)
-
添加 安全票证颁发机构 URL。
-
如果启用了安全 XML 功能,则 STA URL 必须是负载平衡服务的 URL。
-
如果禁用了安全 XML 功能,则 STA URL 必须是 STA 的 URL(DDC 的地址),并且 DDC 上的 TrustRequestsSentToTheXmlServicePort 参数必须设置为 True。
添加 STA URL(/en-us/citrix-daas/media/add-sta-urls.png) -