Citrix Virtual Apps and Desktops

Transport Layer Security (TLS) no Universal Print Server

O protocolo Transport Layer Security (TLS) é compatível com conexões baseadas em TCP entre o Virtual Delivery Agent (VDA) e o Universal Print Server.

Aviso:

Para tarefas que incluem trabalhar no Registro do Windows — editar o Registro incorretamente pode causar sérios problemas que podem exigir a reinstalação do seu sistema operacional. A Citrix® não pode garantir que os problemas resultantes do uso incorreto do Editor do Registro possam ser resolvidos. Use o Editor do Registro por sua conta e risco. Certifique-se de fazer backup do Registro antes de editá-lo.

Tipos de conexões de impressão entre o VDA e o Universal Print Server

Conexões de texto não criptografado

As seguintes conexões relacionadas à impressão se originam do VDA e se conectam a portas no Universal Print Server. Essas conexões são feitas somente quando a configuração de política SSL enabled está definida como Disabled (o padrão).

  • Conexões de serviço web de impressão de texto não criptografado (porta TCP 8080)
  • Conexões de fluxo de dados de impressão de texto não criptografado (CGP) (porta TCP 7229)

O artigo de suporte da Microsoft Service overview and network port requirements for Windows descreve as portas usadas pelo serviço Microsoft Windows Print Spooler. As configurações de SSL/TLS neste documento não se aplicam às conexões NETBIOS e RPC feitas pelo serviço Windows Print Spooler. O VDA usa o Windows Network Print Provider (win32spl.dll) como fallback se a configuração de política Universal Print Server enable estiver definida como Enabled with fallback to Windows’ native remote printing.

universal print server secure

Conexões criptografadas

Essas conexões SSL/TLS relacionadas à impressão se originam do VDA e se conectam a portas no Universal Print Server. Essas conexões são feitas somente quando a configuração de política SSL enabled está definida como Enabled.

  • Conexões de serviço web de impressão criptografadas (porta TCP 8443)
  • Conexões de fluxo de dados de impressão criptografadas (CGP) (porta TCP 443)

universal print server secure 2

Configuração do cliente SSL/TLS

O VDA funciona como o cliente SSL/TLS.

Use a Microsoft Group Policy e o Registro para configurar o Microsoft SCHANNEL SSP para conexões de serviço web de impressão criptografadas (porta TCP 8443). O artigo de suporte da Microsoft TLS Registry Settings descreve as configurações de Registro para o Microsoft SCHANNEL SSP.

Usando o Group Policy Editor no VDA (Windows Server 2016 ou Windows 10), vá para “Computer Configuration” > “Administrative Templates” > “Network” > “SSL Configuration Settings” > “SSL Cipher Suite Order”. Selecione a seguinte ordem:

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

Nota:

Quando essa configuração de Group Policy é configurada, o VDA seleciona um conjunto de cifras para conexões de serviço web de impressão criptografadas (porta padrão: 8443) somente se as conexões aparecerem em ambas as listas de conjuntos de cifras SSL:

  • Lista de ordem de conjuntos de cifras SSL da Group Policy
  • Lista correspondente à configuração de política “SSL Cipher Suite” selecionada (COM, GOV ou ALL)

Essa configuração de Group Policy também afeta outros aplicativos e serviços TLS no VDA. Se seus aplicativos exigirem conjuntos de cifras específicos, talvez seja necessário adicioná-los a esta lista de ordem de conjuntos de cifras da Group Policy.

Importante:

As alterações da Group Policy para a configuração de TLS só entram em vigor após a reinicialização do sistema operacional.

Use uma política Citrix para configurar as configurações de SSL/TLS para conexões de fluxo de dados de impressão criptografadas (CGP) (porta TCP 443).

Configuração do servidor SSL/TLS

O Universal Print Server funciona como o servidor SSL/TLS.

Use o script PowerShell Enable-UpsSsl.ps1 para configurar as configurações de SSL/TLS.

Instalar o certificado de servidor TLS no Universal Print Server

Para HTTPS, o Universal Print Server oferece suporte a recursos TLS usando certificados de servidor. Certificados de cliente não são usados. Use o Microsoft Active Directory Certificate Services ou outra autoridade de certificação para solicitar um certificado para o Universal Print Server.

Considere o seguinte ao registrar/solicitar um certificado usando o Microsoft Active Directory Certificate Services:

  1. Coloque o certificado no armazenamento de certificados “Personal” do “Local Computer”.
  2. Defina o atributo “Common Name” do Subject Distinguished Name (Subject DN) do certificado para o nome de domínio totalmente qualificado (FQDN) do Universal Print Server. Especifique isso no modelo de certificado.
  3. Defina o Cryptographic Service Provider (CSP) usado para gerar a solicitação de certificado e a chave privada como “Microsoft Enhanced RSA and AES Cryptographic Provider (Encryption)”. Especifique isso no modelo de certificado.
  4. Defina o “Key Size” para pelo menos 2048 bits. Especifique isso no modelo de certificado.

Configurando SSL no Universal Print Server

O XTE Service no Universal Print Server escuta as conexões de entrada. Ele funciona como um servidor SSL quando o SSL está habilitado. As conexões de entrada têm dois tipos: conexões de serviço web de impressão, que contêm comandos de impressão, e conexões de fluxo de dados de impressão, que contêm trabalhos de impressão. O SSL pode ser habilitado nessas conexões. O SSL protege a confidencialidade e a integridade dessas conexões. Por padrão, o SSL está desabilitado.

O script PowerShell usado para configurar o SSL está na mídia de instalação e tem este nome de arquivo: \Support\Tools\SslSupport\Enable-UpsSsl.ps1.

Configurando números de porta de escuta no Universal Print Server

Estas são as portas padrão para o XTE Service:

  • Porta TCP de serviço web de impressão de texto não criptografado (HTTP): 8080
  • Porta TCP de fluxo de dados de impressão de texto não criptografado (CGP): 7229
  • Porta TCP de serviço web de impressão criptografado (HTTPS): 8443
  • Porta TCP de fluxo de dados de impressão criptografado (CGP): 443

Para alterar as portas usadas pelo XTE Service no Universal Print Server, execute os seguintes comandos no PowerShell como administrador (consulte a seção posterior para notas sobre o uso do script PowerShell Enable-UpsSsl.ps1):

  1. Stop-Service CitrixXTEServer, UpSvc
  2. Enable-UpsSsl.ps1 -Enable -HTTPSPort <port> -CGPSSLPort <port> ou Enable-UpsSsl.ps1 -Disable -HTTPPort <port> -CGPPort <port>
  3. Start-Service CitrixXTEServer

Configurações de TLS no Universal Print Server

Se você tiver vários Universal Print Servers em uma configuração de balanceamento de carga, certifique-se de que as configurações de TLS estejam configuradas de forma consistente em todos os Universal Print Servers.

Ao configurar o TLS no Universal Print Server, as permissões no certificado TLS instalado são alteradas, concedendo ao Universal Printing Service acesso de leitura à chave privada do certificado e informando ao Universal Printing Service o seguinte:

  • Qual certificado no armazenamento de certificados usar para TLS.
  • Quais números de porta TCP usar para conexões TLS.

O Windows Firewall (se habilitado) deve ser configurado para permitir conexões de entrada nessas portas TCP. Essa configuração é feita automaticamente quando você usa o script PowerShell Enable-UpsSsl.ps1.

  • Quais versões do protocolo TLS permitir.

O Universal Print Server oferece suporte às versões 1.2, 1.1 e 1.0 do protocolo TLS. Especifique a versão mínima permitida.

A versão padrão do protocolo TLS é 1.2.

  • Quais conjuntos de cifras TLS permitir.

Um conjunto de cifras seleciona os algoritmos criptográficos que são usados para uma conexão. VDAs e Universal Print Server podem suportar diferentes conjuntos de cifras. Quando um VDA se conecta e envia uma lista de conjuntos de cifras TLS suportados, o Universal Print Server corresponde um dos conjuntos de cifras do cliente com um dos conjuntos de cifras em sua própria lista de conjuntos de cifras configurados e aceita a conexão. Se não houver um conjunto de cifras correspondente, o Universal Print Server rejeita a conexão.

O Universal Print Server oferece suporte aos seguintes conjuntos de cifras nomeados GOV(ernment), COM(mercial) e ALL para os modos OPEN, FIPS e SP800-52 nativos do Crypto Kit. Os conjuntos de cifras aceitáveis também dependem da configuração de política SSL FIPS Mode e do Windows FIPS Mode. Consulte este artigo de suporte da Microsoft para obter informações sobre o Windows FIPS mode.

Conjunto de cifras (em ordem decrescente de prioridade) OPEN ALL OPEN COM OPEN GOV FIPS ALL FIPS COM FIPS GOV SP800-52 ALL SP800-52 COM SP800-52 GOV
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  

Configurar TLS em um Universal Print Server usando o script PowerShell

Instale o certificado TLS na área “Local Computer” > “Personal” > “Certificates” do armazenamento de certificados. Se mais de um certificado residir nesse local, forneça o thumbprint do certificado ao script PowerShell Enable-UpsSsl.ps1.

Nota:

O script PowerShell encontra o certificado correto com base no FQDN do Universal Print Server. Você não precisa fornecer o thumbprint do certificado quando apenas um único certificado está presente para o FQDN do Universal Print Server.

O script Enable-UpsSsl.ps1 habilita ou desabilita as conexões TLS originadas do VDA para o Universal Print Server. Este script está disponível na pasta “Support” > “Tools” > “SslSupport” na mídia de instalação.

Ao habilitar o TLS, o script desabilita todas as regras existentes do Windows Firewall para as portas TCP do Universal Print Server. Em seguida, ele adiciona novas regras que permitem que o XTE Service aceite conexões de entrada apenas nas portas TCP e UDP TLS. Ele também desabilita as regras do Windows Firewall para:

  • Conexões de serviço web de impressão de texto não criptografado (padrão: 8080)
  • Conexões de fluxo de dados de impressão de texto não criptografado (CGP) (padrão: 7229)

O efeito é que o VDA pode fazer essas conexões apenas usando TLS.

Nota:

A habilitação do TLS não afeta as conexões RPC/SMB do Windows Print Spooler originadas do VDA e que vão para o Universal Print Server.

Importante:

Especifique Enable ou Disable como o primeiro parâmetro. O parâmetro “CertificateThumbprint” é opcional se apenas um certificado no armazenamento de certificados “Local Computer Personal” tiver o FQDN do Universal Print Server. Os outros parâmetros são opcionais.

Sintaxe

Enable-UpsSSL.ps1 -Enable [-HTTPPort <port>] [-CGPPort <port>] [–HTTPSPort <port>] [-CGPSSLPort <port>] [-SSLMinVersion <version>] [-SSLCipherSuite <name>] [-CertificateThumbprint <thumbprint>] [-FIPSMode <Boolean>] [-ComplianceMode <mode>]
Enable-UpsSSL.ps1 -Disable [-HTTPPort <portnum>] [-CGPPort <portnum>]
Parâmetro Descrição
Enable Habilita SSL/TLS no XTE Server. Este parâmetro ou o parâmetro “Disable” é obrigatório.
Disable Desabilita SSL/TLS no XTE Server. Este parâmetro ou o parâmetro “Enable” é obrigatório.
CertificateThumbprint "<thumbprint>" Thumbprint do certificado TLS no armazenamento de certificados “Local Computer Personal”, entre aspas. O script usa o thumbprint especificado para selecionar o certificado que você deseja usar.
HTTPPort <port> Porta de serviço web de impressão de texto não criptografado (HTTP/SOAP). Padrão: 8080
CGPPort <port> Porta de fluxo de dados de impressão de texto não criptografado (CGP). Padrão: 7229
HTTPSPort <port> Porta de serviço web de impressão criptografado (HTTPS/SOAP). Padrão: 8443
CGPSSLPort <port> Porta de fluxo de dados de impressão criptografado (CGP). Padrão: 443
SSLMinVersion "<version>" Versão mínima do protocolo TLS, entre aspas. Valores válidos: “TLS_1.0”, “TLS_1.1” e “TLS_1.2”. Padrão: TLS_1.2.
SSLCipherSuite “<name>” Nome do pacote de conjunto de cifras TLS, entre aspas. Valores válidos: “GOV”, “COM” e “ALL” (padrão).
FIPSMode <Boolean> Habilita ou desabilita o modo FIPS 140 no XTE Server. Valores válidos: $true para habilitar o modo FIPS 140, $false para desabilitar o modo FIPS 140.

Exemplos

O script a seguir habilita o TLS. O thumbprint (representado como “12345678987654321” neste exemplo) é usado para selecionar o certificado a ser usado.

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

O script a seguir desabilita o TLS.

Enable-UpsSsl.ps1 –Disable

Configurando o modo FIPS

A habilitação do modo US Federal Information Processing Standards (FIPS) garante que apenas a criptografia compatível com FIPS 140 seja usada para conexões criptografadas do Universal Print Server.

Configure o modo FIPS no servidor antes de configurar o modo FIPS no cliente.

Consulte o site de documentação da Microsoft para habilitar/desabilitar o modo FIPS do Windows.

Habilitando o modo FIPS no cliente

No Delivery Controller™, execute o Citrix Studio e defina a configuração de política Citrix “SSL FIPS Mode” como “Enabled”. Habilite a política Citrix.

Faça isso em cada VDA:

  1. Habilite o modo FIPS do Windows.
  2. Reinicie o VDA.

Habilitando o modo FIPS no servidor

Faça isso em cada Universal Print Server:

  1. Habilite o modo FIPS do Windows.
  2. Execute este comando PowerShell como administrador: stop-service CitrixXTEServer, UpSvc
  3. Execute o script Enable-UpsSsl.ps1 com os parâmetros -Enable -FIPSMode $true.
  4. Reinicie o Universal Print Server.

Desabilitando o modo FIPS no cliente

No Delivery Controller, execute o Citrix Studio e defina a configuração de política Citrix “SSL FIPS Mode” como “Disabled”. Habilite a política Citrix. Você também pode excluir a configuração de política Citrix “SSL FIPS Mode”.

Faça isso em cada VDA:

  1. Desabilite o modo FIPS do Windows.
  2. Reinicie o VDA.

Desabilitando o modo FIPS no servidor

Faça isso em cada Universal Print Server:

  1. Desabilite o modo FIPS do Windows.
  2. Execute este comando PowerShell como administrador: stop-service CitrixXTEServer, UpSvc
  3. Execute o script Enable-UpsSsl.ps1 com os parâmetros -Enable -FIPSMode $false.
  4. Reinicie o Universal Print Server.

Configurando a versão do protocolo SSL/TLS

A versão padrão do protocolo SSL/TLS é TLS 1.2. O TLS 1.2 é a única versão de protocolo SSL/TLS recomendada para uso em produção. Para solução de problemas, pode ser necessário alterar temporariamente a versão do protocolo SSL/TLS em um ambiente que não seja de produção.

SSL 2.0 e SSL 3.0 não são suportados no Universal Print Server.

Definindo a versão do protocolo SSL/TLS no servidor

Faça isso em cada Universal Print Server:

  1. Execute este comando PowerShell como administrador: stop-service CitrixXTEServer, UpSvc
  2. Execute o script Enable-UpsSsl.ps1 com os parâmetros -Enable -SSLMinVersion version. Lembre-se de redefinir isso para TLS 1.2 quando terminar os testes.
  3. Reinicie o Universal Print Server.

Definindo a versão do protocolo SSL/TLS no cliente

Faça isso em cada VDA:

  1. No Delivery Controller, defina a configuração de política “SSL Protocol Version” para a versão de protocolo desejada e habilite a política.

  2. O artigo de suporte da Microsoft TLS Registry Settings descreve as configurações de Registro para o Microsoft SCHANNEL SSP. Habilite o lado do cliente TLS 1.0, TLS 1.1 ou TLS 1.2 usando as configurações de Registro.

    Importante:

    Lembre-se de restaurar as configurações do Registro para seus valores originais quando terminar os testes.

  3. Reinicie o VDA.

Solução de problemas

Se ocorrer um erro de conexão, verifique o arquivo de log C:\Program Files (x86)\Citrix\XTE\logs\error.log no Universal Print Server.

A mensagem de erro “SSL handshake from client failed” aparece neste arquivo de log se o handshake SSL/TLS falhar. Tais falhas podem ocorrer se a versão do protocolo SSL/TLS no VDA e no Universal Print Server não corresponderem.

Use o FQDN do Universal Print Server nas seguintes configurações de política que contêm nomes de host do Universal Print Server:

  • “Session printers”
  • “Printer assignments”
  • “Universal Print Servers for load balancing”

Certifique-se de que o relógio do sistema (data, hora e fuso horário) esteja correto nos Universal Print Servers e nos VDAs.

Transport Layer Security (TLS) no Universal Print Server