Citrix虚拟应用和桌面

通用打印服务器上的传输层安全(TLS)

虚拟交付代理(VDA)和通用打印服务器之间基于tcp的连接支持TLS (Transport Layer Security)协议。

警告:

对于包括在Windows注册表中工作的任务,错误地编辑注册表可能会导致严重的问题,可能需要重新安装操作系统。Citrix不能保证由于不正确使用注册表编辑器而导致的问题能够得到解决。请自行承担使用注册表编辑器的风险。在编辑注册表之前,请务必备份注册表。

VDA和通用打印服务器之间的打印连接类型

明文连接

以下与打印相关的连接来自VDA,并连接到通用打印服务器上的端口。这些连接只在启用SSL策略设置为禁用(默认)。

  • 打印web服务连接(TCP端口8080)
  • 明文打印数据流(CGP)连接(TCP端口7229)

微软支持文章Windows的服务概述和网口要求说明Microsoft Windows打印脱机程序服务使用的端口。本文档中的SSL/TLS设置不适用于Windows Print Spooler服务建立的NETBIOS和RPC连接。VDA使用Windows网络打印提供程序(win32spll .dll)作为回退,如果通用打印服务器启用策略设置为启用回退到Windows的本机远程打印

通用打印服务器安全

加密连接

这些与打印相关的SSL/TLS连接来自VDA,并连接到通用打印服务器上的端口。这些连接只在启用SSL策略设置为启用

  • 加密打印web服务连接(TCP端口8443)
  • 加密的打印数据流(CGP)连接(TCP端口443)

通用打印服务器安全2

客户机配置SSL / TLS

VDA作为SSL/TLS客户端。

使用Microsoft Group Policy和注册表配置Microsoft channel SSP用于加密打印web服务连接(TCP端口8443)。微软支持文章TLS注册表设置描述microsoftchannel SSP的注册表设置。

在VDA (Windows Server 2016或Windows 10)上使用组策略编辑器,转到计算机配置>管理模板>网络> SSL配置设置> SSL密码套件顺序.选择以下顺序:

Tls_ecdhe_rsa_with_aes_256_gcm_sha384_p384 tls_ecdhe_rsa_with_aes_256_cbc_sha384_p384 tls_ecdhe_rsa_with_aes_256_cbc_sha384_p384 tls_ecdhe_rsa_with_aes_256_cbc_sha384_p384 tls_ecdhe_rsa_with_aes_256_cbc_sha384_p384

注意:

当配置了此组策略设置时,只有当连接出现在两个SSL加密套件列表中时,VDA才会为加密打印web服务连接选择加密套件(默认端口:8443):

  • Group Policy SSL加密套件订单列表
  • 与所选SSL密码套件策略设置(COM、GOV或ALL)对应的列表

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

重要的是:

修改TLS配置的“组策略”需要重启操作系统才能生效。

使用Citrix策略为加密的打印数据流连接(TCP端口443)配置SSL/TLS设置。

SSL / TLS服务器配置

通用打印服务器作为SSL/TLS服务器。

使用Enable-UpsSsl.ps1配置SSL/TLS设置的PowerShell脚本。

在通用打印服务器上安装TLS服务器证书

对于HTTPS, Universal Print Server通过使用服务器证书支持TLS特性。未使用客户端证书。使用Microsoft Active Directory证书服务或其他证书颁发机构为通用打印服务器请求证书。

在使用Microsoft Active Directory证书服务注册/请求证书时,请记住以下注意事项:

  1. 将证书放在本地计算机中个人证书存储。
  2. 设置普通的名字证书的主题区别名(Subject DN)属性为通用打印服务器的完全合格域名(FQDN)。在证书模板中指定此参数。
  3. 将用于生成证书请求和私钥的加密服务提供者(CSP)设置为Microsoft增强RSA和AES加密提供程序(加密).在证书模板中指定此参数。
  4. 密钥大小至少为2048位。在证书模板中指定此参数。

在通用打印服务器上配置SSL

通用打印服务器上的XTE服务监听传入的连接。当启用SSL时,作为SSL服务器。传入的连接有两种类型:打印web服务连接(包含打印命令)和打印数据流连接(包含打印作业)。可以在这些连接上启用SSL。SSL保护这些连接的机密性和完整性。缺省情况下,禁用SSL。

用于配置SSL的PowerShell脚本位于安装媒体上,其文件名如下:\ \ \ SslSupport \ Enable-UpsSsl.ps1工具的支持。

在通用打印服务器上配置侦听端口号

这些是XTE服务的默认端口:

  • 明文打印web服务(HTTP) TCP端口:8080
  • CGP (Cleartext print data stream) TCP端口:7229
  • 加密打印web服务(HTTPS) TCP端口:8443
  • 加密的打印数据流(CGP) TCP端口:443

要更改通用打印服务器上的XTE服务使用的端口,请以管理员身份在PowerShell中运行以下命令(有关enable - upssl用法的说明,请参阅后面的小节。ps1 PowerShell脚本):

  1. 服务CitrixXTEServer, UpSvc
  2. Enable-UpsSsl.ps1-Enable -HTTPSPort -CGPSSLPort Enable-UpsSsl.ps1-Disable -HTTPPort -CGPPort
  3. 开始营运CitrixXTEServer

通用打印服务器上的TLS设置

如果在负载均衡配置中有多个通用打印服务器,请确保在所有通用打印服务器上配置的TLS设置一致。

当您在通用打印服务器上配置TLS时,已安装的TLS证书的权限将被更改,从而赋予通用打印服务对证书私钥的读访问权,并通知通用打印服务以下信息:

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

Windows防火墙(如果启用)必须配置为允许在这些TCP端口上传入连接。此配置是在使用enable - upssl时为您完成的。ps1 PowerShell脚本。

  • 允许TLS协议的哪个版本。

通用打印服务器支持TLS协议版本1.2,1.1和1.0。指定允许的最小版本。

默认TLS协议版本为1.2。

  • 允许哪些TLS加密套件。

密码套件选择用于连接的密码算法。VDAs和通用打印服务器可以支持不同的密码套件。当VDA连接并发送受支持的TLS加密套件列表时,Universal Print Server将客户端的加密套件与它自己配置的加密套件列表中的一个加密套件进行匹配,并接受连接。如果没有匹配的密码套件,通用打印服务器将拒绝连接。

通用打印服务器支持以下密码套件,分别为GOV(政府)、COM(商业)和ALL,适用于OPEN、FIPS和SP800-52 native Crypto Kit模式。可接受的密码套件还取决于SSL FIPS模式策略设置和Windows FIPS模式。看到这个微软支持的文章有关Windows FIPS模式的信息。

密码套件(优先级递减顺序) 打开所有 打开COM 开放的政府 FIPS所有 FIPS COM FIPS政府 SP800-52所有 SP800-52 COM SP800-52政府
TLS_ECDHE_RSA_ AES256_GCM_SHA384 X X X X X X
TLS_ECDHE_RSA_ AES256_CBC_SHA384 X X X X X X
TLS_ECDHE_RSA_ AES256_CBC_SHA X X X X X X

使用PowerShell脚本在通用打印服务器上配置TLS

安装TLS证书本地计算机>个人>证书区域的证书存储。如果该位置中存在多个证书,则将该证书的拇指指纹提供给Enable-UpsSsl.ps1PowerShell脚本。

注意:

PowerShell脚本根据Universal Print Server的FQDN找到正确的证书。当通用打印服务器FQDN只有一个证书时,您不需要提供证书拇指印。

Enable-UpsSsl.ps1脚本启用或禁用从VDA到通用打印服务器的TLS连接。该脚本可在支持>工具> SslSupport安装介质上的文件夹。

当您启用TLS时,该脚本将禁用通用打印服务器的TCP端口的所有现有Windows防火墙规则。然后,它添加了新的规则,允许XTE服务仅在TLS TCP和UDP端口上接受传入的连接。它还禁用Windows防火墙规则:

  • 打印web服务连接(默认值:8080)
  • 清晰文本打印数据流(CGP)连接(默认:7229)

结果是VDA只能在使用TLS时建立这些连接。

注意:

启用TLS不会影响从VDA到通用打印服务器的Windows打印假脱机RPC/SMB连接。

重要的是:

指定或启用禁用作为第一个参数。如果本地计算机个人证书存储区中只有一个证书具有通用打印服务器的FQDN,则CertificateThumbprint参数是可选的。其他参数为可选参数。

语法

Enable-UpsSSL。ps1 -Enable [-HTTPPort ] [-CGPPort ] [-HTTPSPort ] [-CGPSSLPort ] [-SSLMinVersion ] [-SSLCipherSuite ] [-CertificateThumbprint ] [-FIPSMode ] [-ComplianceMode ] enable - upssl。ps1 -Disable [-HTTPPort ] [-CGPPort ]
参数 描述
启用 在XTE服务器上启用SSL/TLS。该参数或“Disable”参数均为必选参数。
禁用 在XTE服务器上禁用SSL/TLS。该参数或“启用”参数都是必需的。
CertificateThumbprint“<拇指指纹>” 本地计算机个人证书存储区中TLS证书的拇指指纹,用引号括起来。脚本使用指定的拇指指纹来选择要使用的证书。
HTTPPort<口> 明文打印web服务(HTTP/SOAP)端口。默认值:8080
CGPPort<口> 明文打印数据流(CGP)端口。默认值:7229
HTTPSPort<口> 加密打印web服务(HTTPS/SOAP)端口。默认值:8443
CGPSSLPort<口> 加密的打印数据流(CGP)端口。默认值:443
SSLMinVersion“<版本>” 最小TLS协议版本,用引号括起来。有效值:“TLS_1.0”、“TLS_1.1”,“TLS_1.2”。默认值:TLS_1.2。
SSLCipherSuite“<名称>” TLS加密套件包的名称,用引号括起来。有效值:默认为“GOV”、“COM”、“ALL”。
FIPSMode布尔> < 在XTE服务器中启用或禁用FIPS 140模式。有效值:$true表示开启FIPS 140模式,$false表示关闭FIPS 140模式。

例子

下面的脚本启用TLS。拇指指纹(在本例中表示为“12345678987654321”)用于选择要使用的证书。

Enable-UpsSsl.ps1–Enable -CertificateThumbprint "12345678987654321"

下面的脚本禁用TLS。

Enable-UpsSsl.ps1–Disable

配置FIPS模式

启用美国联邦信息处理标准(FIPS)模式可确保通用打印服务器加密连接只使用符合FIPS 140的加密。

在客户端配置FIPS模式之前,需要先在服务器端配置FIPS模式。

关于启用/禁用Windows FIPS模式,请参阅Microsoft的文档站点。

在客户端启用FIPS模式

在Delivery Controller上运行Citrix Studio并设置SSL FIPS模式策略设置为启用.启用Citrix策略。

在每个VDA上这样做:

  1. 启用Windows FIPS模式。
  2. 重新启动的共识。

在服务器上启用FIPS模式

在每个通用打印服务器上这样做:

  1. 启用Windows FIPS模式。
  2. 以管理员身份运行PowerShell命令:服务CitrixXTEServer, UpSvc
  3. 运行Enable-UpsSsl.ps1脚本的使-FIPSMode真正的美元参数。
  4. 重新启动通用打印服务器。

在客户端禁用FIPS模式

在Delivery Controller上运行Citrix Studio并设置SSL FIPS模式策略设置为禁用.启用Citrix策略。您也可以删除SSL FIPS模式Citrix策略设置。

在每个VDA上这样做:

  1. 禁用Windows FIPS模式。
  2. 重新启动的共识。

禁用服务器的FIPS模式

在每个通用打印服务器上这样做:

  1. 禁用Windows FIPS模式。
  2. 以管理员身份运行PowerShell命令:服务CitrixXTEServer, UpSvc
  3. 运行Enable-UpsSsl.ps1脚本的使-FIPSMode假美元参数。
  4. 重新启动通用打印服务器。

配置SSL/TLS协议版本

默认的SSL/TLS协议版本为TLS 1.2。TLS 1.2是唯一推荐用于生产环境的SSL/TLS协议版本。为了排除故障,可能需要临时更改非生产环境中的SSL/TLS协议版本。

通用打印服务器不支持SSL 2.0和SSL 3.0。

服务器端设置SSL/TLS协议版本

在每个通用打印服务器上这样做:

  1. 以管理员身份运行PowerShell命令:服务CitrixXTEServer, UpSvc
  2. 运行Enable-UpsSsl.ps1脚本的使-SSLMinVersion参数版本。在完成测试后,请记住将其设置回TLS 1.2。
  3. 重新启动通用打印服务器。

客户端设置SSL/TLS协议版本

在每个VDA上这样做:

  1. 在下发控制器上设置SSL协议版本策略设置为所需的协议版本,并启用策略。

  2. 微软支持文章TLS注册表设置描述microsoftchannel SSP的注册表设置。启用客户端TLS 1.0, TLS 1.1或TLS 1.2使用注册表设置。

    重要的是:

    当您完成测试时,请记住将注册表设置恢复到它们的原始值。

  3. 重新启动的共识。

故障排除

如果出现连接错误,请检查Universal Print Server上的C:\Program Files (x86)\Citrix\XTE\logs\error.log日志文件。

错误消息客户端SSL握手失败如果SSL/TLS握手失败,则出现在此日志文件中。如果VDA和Universal Print Server上的SSL/TLS协议版本不匹配,就会发生此类失败。

在以下包含通用打印服务器主机名的策略设置中使用通用打印服务器FQDN:

  • 会话打印机
  • 打印机作业
  • 用于负载平衡的通用打印服务器

确保Universal Print server和VDAs的系统时钟(日期、时间和时区)正确。