Citrix Virtual Apps and Desktops

Habilitar TLS em Controladoras de Entrega

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

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

Solicitando e instalando um certificado

Para usar TLS, você deve instalar um certificado cujo Nome Comum (Common Name) ou Nome Alternativo do Assunto (Subject Alternative Name) corresponda ao FQDN do servidor. Se você estiver usando um balanceador de carga na frente das controladoras de entrega, inclua os FQDNs do servidor e do balanceador de carga como Nomes Alternativos do Assunto. Para mais informações, consulte Certificados. Para que o StoreFront se conecte à controladora 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 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 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 um 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 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 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 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 da Citrix.

      Nota:

      Ao renovar um certificado ou refazer a vinculação, 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 da 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--> ```
      
      1. Localize o IdentifyingNumber (GUID) para o Serviço de Broker da 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 de TLS. Este parâmetro está disponível no Windows 2022 e superior. No Windows 2022, ele desabilita TLS 1.0 e 1.1. No Windows 2025, isso é desnecessário, pois 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 ativado, configure 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 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_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. Abrir 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 não esteja definido como 0.

Alterar portas HTTP ou HTTPS

Por padrão, o Serviço XML no Controller 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 Controller 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 Controller, 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
  • <https-port> é o número da porta para tráfego HTTPS.

Nota:

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 Controladoras de Entrega