Citrix Virtual Apps and Desktops

Habilitar TLS en los Delivery Controllers

De forma predeterminada, tanto HTTP como HTTPS están habilitados. HTTPS usa un certificado autofirmado que utiliza el FQDN del servidor como nombre común, el cual no es de confianza para StoreFront™ ni para los exploradores web.

Para habilitar TLS en un Delivery Controller™, debes:

Solicitar e instalar un certificado

Para usar TLS, debes instalar un certificado cuyo nombre común o nombre alternativo del sujeto coincida con el FQDN del servidor. Si usas un equilibrador de carga delante de los Delivery Controllers, incluye los FQDN del servidor y del equilibrador de carga como nombres alternativos del sujeto. Para obtener más información, consulta Certificados. Para que StoreFront se conecte al Delivery Controller, debes usar un algoritmo de firma digital RSA. StoreFront no admite certificados que usen el algoritmo ECDSA.

Configurar el puerto de escucha SSL/TLS

Si el componente de Windows IIS está instalado en el mismo servidor, que se instala como parte de Web Studio y Director, puedes configurar TLS mediante IIS. Para obtener más información, consulta Habilitar TLS en Web Studio y Director. De lo contrario, para configurar el certificado mediante PowerShell:

  1. Para comprobar si hay un certificado existente enlazado, abre un símbolo del sistema y ejecuta netsh http show sslcert:

    netsh http show sslcert
    <!--NeedCopy-->
    
  2. Si hay un enlace existente, elimínalo.

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

    Reemplaza 0.0.0.0:443 por una dirección IP y un puerto específicos si se especificó uno en el enlace existente.

  3. Busca la huella digital del certificado que instalaste anteriormente. Para ver la huella digital, abre Administrar certificados de equipo, busca el certificado, ábrelo y ve a la ficha Detalles.

    Captura de pantalla de las propiedades del certificado que muestran la huella digital

    Alternativamente, puedes usar PowerShell. Por ejemplo, el siguiente script busca un certificado cuyo nombre común coincida con el nombre de host del servidor e imprime la huella 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-->
    

    Si el nombre común del certificado no coincide con los nombres de host, se producirá un error. Si hay varios certificados para el nombre de host, esto devuelve varias huellas digitales concatenadas y debes elegir la huella digital adecuada.

    El siguiente ejemplo busca un certificado por nombre descriptivo:

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

    Si hay varios certificados con el nombre descriptivo especificado, esto devuelve varias huellas digitales concatenadas y debes elegir la huella digital adecuada.

  4. Para enlazar el certificado al puerto, usa el comando netsh http add sslcert:

    netsh http add sslcert ipport=[IP address]:443 certhash=[certificate hash] appid=[application GUID] disablelegacytls=enable
    <!--NeedCopy-->
    
    • ipport: La dirección IP y el puerto. El uso de 0.0.0.0:443 lo aplica a todas las direcciones IP. En su lugar, puedes especificar una dirección IP concreta.
    • certhash: La huella digital del certificado que identificaste en el paso anterior.
    • appid: El GUID del servicio Citrix Broker.

      Nota:

      Al renovar un certificado o volver a enlazarlo, usa el appid específico asociado al servicio Broker en lugar de un GUID arbitrario. Para encontrar el appid correcto para el servicio Citrix Broker:

      1. Abre una ventana de comandos de PowerShell como administrador y ejecuta el siguiente comando:

        Get-WmiObject -Class Win32_Product | Select-String -Pattern "broker"
        <!--NeedCopy-->
        
      2. Busca el IdentifyingNumber (GUID) del servicio Citrix Broker en la salida (por ejemplo, {D333C884-187F-447C-8C67-463F33989C8F}). Usa este GUID para el parámetro appid.

    • disablelegacytls=enable: Inhabilita las versiones heredadas de TLS. Este parámetro está disponible en Windows 2022 y versiones posteriores. En Windows 2022, inhabilita TLS 1.0 y 1.1. En Windows 2025, esto es innecesario, ya que TLS 1.0 y 1.1 están inhabilitados de forma predeterminada.

    Por ejemplo, ejecuta el siguiente comando para enlazar el certificado con la huella digital bc96f958848639fd101a793b87915d5f2829b0b6 al puerto 443 en todas las direcciones IP:

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

Una vez que HTTPS esté habilitado, configura las implementaciones de StoreFront y los NetScaler Gateways para que usen HTTPS en lugar de HTTP para conectarse al Delivery Controller.

Configurar la API OData del servicio de supervisión para HTTPS

El servicio de supervisión proporciona API OData v3 y v4 para permitir que las aplicaciones de Citrix® y de terceros consulten datos. Director se conecta al servicio de supervisión mediante la API OData V3. Para configurar las API OData del servicio de supervisión para HTTPS, completa los siguientes pasos:

  1. Ejecuta el siguiente 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. Abre el archivo C:\Program Files\Citrix\Monitor\Service\Citrix.Monitor.exe.Config con un editor de texto. Busca el elemento <add key="owin:baseAddress" value="http://localhost/citrix/monitor/odata/v4" /> y cámbialo a <add key="owin:baseAddress" value="https://localhost/citrix/monitor/odata/v4" />.

Configurar conjuntos de cifrado

La lista de orden de conjuntos de cifrado debe incluir los conjuntos de cifrado TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 o TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (o ambos); y estos conjuntos de cifrado deben preceder a cualquier conjunto de cifrado TLS_DHE_.

  1. Con el Editor de directivas de grupo de Microsoft, explora hasta Configuración del equipo > Plantillas administrativas > Red > Configuración de configuración de SSL.
  2. Modifica la directiva “Orden de conjuntos de cifrado SSL”. De forma predeterminada, esta directiva está establecida en “No configurado”. Establece esta directiva en Habilitado.
  3. Organiza los conjuntos en el orden correcto. Quita los conjuntos de cifrado que no quieras usar.

Asegúrate de que TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 o TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 preceda a cualquier conjunto de cifrado TLS_DHE_.

En Microsoft Learn, consulta también Configurar el orden de los conjuntos de cifrado TLS.

Aplicar solo tráfico HTTPS

Se recomienda que configures el servicio XML para que ignore el tráfico HTTP.

  1. Ejecuta regedit
  2. Abre HKLM\Software\Citrix\DesktopServer\
  3. Crea un nuevo valor DWORD con el nombre XmlServicesEnableNonSsl y establécelo en 0.
  4. Reinicia el servicio Broker.

Hay un valor DWORD de registro correspondiente, XmlServicesEnableSsl, que puedes crear para ignorar el tráfico HTTPS. Asegúrate de que no esté establecido en 0.

Cambiar puertos HTTP o HTTPS

De forma predeterminada, el servicio XML del Controller escucha en el puerto 80 para el tráfico HTTP y en el puerto 443 para el tráfico HTTPS. Aunque puedes usar puertos no predeterminados, ten en cuenta los riesgos de seguridad de exponer un Controller a redes que no son de confianza. Implementar un servidor StoreFront independiente es preferible a cambiar los valores predeterminados.

Para cambiar los puertos HTTP o HTTPS predeterminados que usa el Controller, ejecuta el siguiente comando desde Studio:

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

Donde:

  • <http-port> es el número de puerto para el tráfico HTTP
  • <https-port> es el número de puerto para el tráfico HTTPS.

Nota:

Después de cambiar un puerto, Studio podría mostrar un mensaje sobre la compatibilidad de licencias y la actualización. Para resolver el problema, vuelve a registrar las instancias de servicio mediante la siguiente secuencia de cmdlets de PowerShell:

Get-ConfigRegisteredServiceInstance -ServiceType Broker -Binding XML_HTTPS |
Unregister-ConfigRegisteredServiceInstance
Get-BrokerServiceInstance | where Binding -eq "XML_HTTPS" |
Register-ConfigServiceInstance
<!--NeedCopy-->
Habilitar TLS en los Delivery Controllers