Citrix Virtual Apps and Desktops

Habilitar TLS em Controladores de Entrega

Por padrão, tanto HTTP quanto HTTPS estão habilitados. O HTTPS usa um certificado autoassinado utilizando o FQDN do servidor como nome comum, o que não é confiável pelo 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 do Assunto. Para obter 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 de escuta SSL/TLS

Se o componente IIS do Windows estiver instalado no mesmo servidor, que é instalado como parte do Web Studio e do Director, você pode configurar o TLS usando o IIS. Para obter mais informações, consulte Habilitar TLS no Web Studio e 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 um vínculo existente, exclua-o.

    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 um especificado no vínculo 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 guia “Detalhes”.

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

    Alternativamente, 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 impressão digital:

    $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 de host, 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 pelo 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: O endereço IP e a porta. Usar 0.0.0.0:443 aplica isso a todos os endereços IP. Você pode, em vez disso, especificar um endereço IP específico.

    • certhash: A impressão digital do certificado que você identificou na etapa anterior.
    • appid: O GUID do Serviço de Broker Citrix.

      Observação:

      Ao renovar um certificado ou revincular, use o appid específico associado ao Serviço de Broker em vez de um GUID arbitrário.

      Para encontrar o appid correto para o Serviço de Broker Citrix:

      1. Abra uma janela de comando do PowerShell como administrador e execute o seguinte comando:

         Get-WmiObject -Class Win32_Product | Select-String -Pattern "broker"
         <!--NeedCopy-->
        
      2. Localize o IdentifyingNumber (GUID) para o Serviço de Broker Citrix na saída (por exemplo, {D333C884-187F-447C-8C67-463F33989C8F}). Use este GUID para o parâmetro appid.

    • disablelegacytls=enable: Desabilita versões legadas do TLS. Este parâmetro está disponível no Windows 2022 e superior. No Windows 2022, ele desabilita o TLS 1.0 e 1.1. No Windows 2025, isso é desnecessário, pois o TLS 1.0 e 1.1 sã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-->
    

Uma vez que o HTTPS esteja 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 Director se conecta ao serviço de monitoramento usando a API OData V3. Para configurar as APIs OData do monitor 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:\Program Files\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 de conjuntos de cifras deve incluir os conjuntos de cifras TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 ou 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 Configuração SSL”.
  2. Edite a política “Ordem do Conjunto de Cifras SSL”. Por padrão, esta política é definida como “Não Configurado”. Defina esta política como “Habilitado”.
  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_SHA384 ou TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 preceda quaisquer conjuntos de cifras TLS_DHE_.

No Microsoft Learn, consulte também Configurando a Ordem do Conjunto de Cifras TLS.

Impor apenas tráfego HTTPS

Recomenda-se 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 de Broker.

Existe um valor DWORD de registro correspondente, XmlServicesEnableSsl, que você pode criar para ignorar o tráfego HTTPS. Certifique-se de que ele 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. Implantar um servidor StoreFront autônomo é preferível a 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