Citrix Virtual Apps and Desktops

Habilitar TLS em controladores de entrega

Por padrão, HTTP e HTTPS estão habilitados. O HTTPS usa um certificado autoassinado usando o FQDN do servidor como nome comum, que não é confiável para o StoreFront ou navegadores da web.

Para habilitar o TLS em um controlador de entrega, você deve:

Solicitando e instalando um certificado

Para usar o TLS, você deve instalar um certificado cujo Nome Comum ou Nome Alternativo do Assunto corresponda ao FQDN do servidor. Se você estiver usando um balanceador de carga na frente dos controladores de entrega, inclua os FQDNs do servidor e do balanceador de carga como Nomes Alternativos de Assunto. Para mais informações, consulte Certificados. Para que o StoreFront se conecte ao controlador de entrega, você deve usar um algoritmo de assinatura digital RSA. O StoreFront não oferece suporte a certificados que usam o algoritmo ECDSA.

Configurando a porta do listener SSL/TLS

Se o componente IIS do Windows estiver instalado no mesmo servidor que é instalado como parte do Web Studio e do Director, você poderá configurar o TLS usando o IIS. Para obter mais informações, consulte Habilitar TLS no Web Studio e no Director. Caso contrário, para configurar o certificado usando o PowerShell:

  1. Para verificar se há um certificado existente vinculado, abra um prompt de comando e execute netsh http show sslcert:

      netsh http show sslcert
    <!--NeedCopy-->
    
  2. Se houver uma vinculação existente, exclua-a.

      netsh http delete sslcert ipport=0.0.0.0:443
    <!--NeedCopy-->
    

    Substituindo 0.0.0.0:443 por um endereço IP e porta específicos, se houver algum especificado na vinculação existente.

  3. Encontre a impressão digital do certificado que você instalou anteriormente. Para visualizar a impressão digital, abra Gerenciar certificados do computador, navegue até o certificado, abra-o e vá para a aba Detalhes .

    Captura de tela das propriedades do certificado mostrando a impressão digital

    Como alternativa, você pode usar o PowerShell. Por exemplo, o script a seguir procura um certificado cujo nome comum corresponde ao nome do host do servidor e imprime a miniatura:

      $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-->
    

    Se o nome comum do certificado não corresponder aos nomes dos hosts, isso falhará. Se houver vários certificados para o nome do host, isso retornará várias impressões digitais concatenadas e você deverá escolher a impressão digital apropriada.

    O exemplo a seguir procura um certificado por nome amigável:

      $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-->
    

    Se houver vários certificados com o nome amigável especificado, isso retornará várias impressões digitais concatenadas e você deverá escolher a impressão digital apropriada.

  4. Para vincular o certificado à porta, use o comando netsh http add sslcert :

      netsh http add sslcert ipport=[IP address]:443 certhash=[certificate hash] appid=[application GUID] disablelegacytls=enable
    <!--NeedCopy-->
    
    • ipport especifica o endereço IP e a porta. Usar 0.0.0.0:443 aplica isso a todos os endereços IP. Em vez disso, você pode especificar um endereço IP específico.

    • appid - um GUID arbitrário usado para identificar o aplicativo que adicionou a vinculação. Você pode usar qualquer GUID válido, por exemplo {91fe7386-e0c2-471b-a252-1e0a805febac}.

    • disablelegacytls=enable - desabilita versões legadas do TLS. Este parâmetro está disponível no Windows 2022 e superior. O Windows 2022 desabilita o TLS 1.0 e 1.1. No Windows 2025 isso é desnecessário, pois TLS 1.0 e 1.1 estão desabilitados por padrão.

    Por exemplo, execute o seguinte comando para vincular o certificado com a impressão digital bc96f958848639fd101a793b87915d5f2829b0b6 à porta 443 em todos os endereços IP:

      netsh http add sslcert ipport=0.0.0.0:443 certhash=bc96f958848639fd101a793b87915d5f2829b0b6 appid={91fe7386-e0c2-471b-a252-1e0a805febac} disablelegacytls=enable
    <!--NeedCopy-->
    

Depois que o HTTPS estiver habilitado, você deve configurar quaisquer implantações do StoreFront e Netscaler Gateways para usar HTTPS em vez de HTTP para se conectar ao controlador de entrega.

Configurar a API OData do Serviço de Monitoramento para HTTPS

O serviço de monitoramento fornece APIs OData v3 e v4 para permitir que aplicativos Citrix e de terceiros consultem dados. O diretor se conecta ao serviço de monitoramento usando a API OData V3. Para configurar as APIs do monitor OData para HTTPS, conclua as seguintes etapas:

  1. Execute o seguinte PowerShell:

      $serviceGroup = Get-ConfigRegisteredServiceInstance -ServiceType Monitor | Select -First 1 ServiceGroupUid
      Remove-ConfigServiceGroup -ServiceGroupUid $serviceGroup.ServiceGroupUid
      & 'C:\Program Files\Citrix\Monitor\Service\citrix.monitor.exe' -ConfigureFirewall -RequireODataTls OdataPort 443 -RequireODataSdkTls OdataSdkPort 443
      get-MonitorServiceInstance | register-ConfigServiceInstance
      Get-ConfigRegisteredServiceInstance -ServiceType Config | Reset-MonitorServiceGroupMembership
    <!--NeedCopy-->
    
  2. Abra o arquivo C:\Arquivos de Programas\Citrix\Monitor\Service\Citrix.Monitor.exe.Config com um editor de texto. Encontre o elemento <add key="owin:baseAddress" value="http://localhost/citrix/monitor/odata/v4" /> e altere-o para <add key="owin:baseAddress" value="https://localhost/citrix/monitor/odata/v4" />.

Configurar conjuntos de cifras

A lista de ordem do conjunto de cifras deve incluir os conjuntos de cifras TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384ou TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (ou ambos); e esses conjuntos de cifras devem preceder quaisquer conjuntos de cifras TLS_DHE_ .

  1. Usando o Editor de Política de Grupo da Microsoft, navegue até Configuração do Computador > Modelos Administrativos > Rede > Configurações de SSL.
  2. Edite a política “SSL Cipher Suite Order”. Por padrão, esta política é definida como “Não configurada”. Defina esta política como Ativada.
  3. Organize os conjuntos na ordem correta; remova quaisquer conjuntos de cifras que você não deseja usar.

Certifique-se de que TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384ou TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 preceda qualquer conjunto de cifras TLS_DHE_ .

No Microsoft Learn, consulte também Configurando a ordem do conjunto de cifras TLS.

Aplicar somente tráfego HTTPS

É recomendável que você configure o Serviço XML para ignorar o tráfego HTTP.

  1. Execute regedit
  2. Abra HKLM\Software\Citrix\DesktopServer\
  3. Crie um novo valor DWORD com o nome XmlServicesEnableNonSsl e defina-o como 0.
  4. Reinicie o serviço do corretor.

Há um valor DWORD de registro correspondente XmlServicesEnableSsl que você pode criar para ignorar o tráfego HTTPS. Certifique-se de que não esteja definido como 0.

Alterar portas HTTP ou HTTPS

Por padrão, o Serviço XML no Controlador escuta na porta 80 para tráfego HTTP e na porta 443 para tráfego HTTPS. Embora você possa usar portas não padrão, esteja ciente dos riscos de segurança de expor um Controlador a redes não confiáveis. É preferível implantar um servidor StoreFront autônomo do que alterar os padrões.

Para alterar as portas HTTP ou HTTPS padrão usadas pelo Controlador, execute o seguinte comando no Studio:

  BrokerService.exe -StoreFrontPort <http-port> -StoreFrontTlsPort <https-port>
<!--NeedCopy-->

onde <http-port> é o número da porta para tráfego HTTP e <https-port> é o número da porta para tráfego HTTPS.

Observação:

Após alterar uma porta, o Studio pode exibir uma mensagem sobre compatibilidade de licença e atualização. Para resolver o problema, registre novamente as instâncias de serviço usando a seguinte sequência de cmdlets do PowerShell:

  Get-ConfigRegisteredServiceInstance -ServiceType Broker -Binding XML_HTTPS |
  Unregister-ConfigRegisteredServiceInstance
  Get-BrokerServiceInstance | where Binding -eq "XML_HTTPS" |
  Register-ConfigServiceInstance
<!--NeedCopy-->
Habilitar TLS em controladores de entrega