Citrix Virtual Apps and Desktops

Habilitar TLS en los controladores de entrega

De forma predeterminada, tanto HTTP como HTTPS están habilitados. HTTPS utiliza un certificado autofirmado que utiliza el FQDN del servidor como nombre común, en el cual no confían StoreFront ni los navegadores web.

Para habilitar TLS en un controlador de entrega, debe:

Solicitar e instalar un certificado

Para utilizar TLS, debe instalar un certificado cuyo nombre común o nombre alternativo del sujeto coincida con el FQDN del servidor. Si está utilizando un balanceador de carga delante de los controladores de entrega, incluya los FQDN del servidor y del balanceador de carga como nombres alternativos del sujeto. Para obtener más información, consulte Certificados. Para que StoreFront se conecte al controlador de entrega, debe utilizar un algoritmo de firma digital RSA. StoreFront no admite certificados que utilicen el algoritmo ECDSA.

Configurar el puerto de escucha SSL/TLS

Si el componente IIS de Windows está instalado en el mismo servidor que se instala como parte de Web Studio y Director, puede configurar TLS mediante IIS. Para obtener más información, consulte 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, abra un símbolo del sistema y ejecute netsh http show sslcert:

      netsh http show sslcert
    <!--NeedCopy-->
    
  2. Si existe un enlace, elimínelo.

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

    Reemplazar 0.0.0.0:443 con una dirección IP y un puerto específicos si había uno especificado en el enlace existente.

  3. Encuentra la huella digital del certificado que instalaste anteriormente. Para ver la huella digital, abra Administrar certificados de equipo, busque el certificado, ábralo y vaya a la ficha Detalles.

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

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

    Si el nombre común del certificado no coincide con los nombres de host, esto fallará. Si hay varios certificados para el nombre de host, esto devuelve varias huellas digitales concatenadas entre sí y debe 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 entre sí y debe elegir la huella digital adecuada.

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

      netsh http add sslcert ipport=[IP address]:443 certhash=[certificate hash] appid=[application GUID] disablelegacytls=enable
    <!--NeedCopy-->
    
    • ipport especifica la dirección IP y el puerto. El uso de 0.0.0.0:443 aplica esto a todas las direcciones IP. En su lugar, puede especificar una dirección IP específica.

    • appid - un GUID arbitrario utilizado para identificar la aplicación que agregó el enlace. Puede utilizar cualquier GUID válido, por ejemplo {91fe7386-e0c2-471b-a252-1e0a805febac}.

    • disabledlegacytls=enable - deshabilita las versiones heredadas de TLS. Este parámetro está disponible en Windows 2022 y versiones superiores. Windows 2022 deshabilita TLS 1.0 y 1.1. En Windows 2025 esto no es necesario, puesto que TLS 1.0 y 1.1 están deshabilitados de forma predeterminada.

    Por ejemplo, ejecute 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 habilitado HTTPS, debe configurar todas las implementaciones de implementaciones de StoreFront y las puertas de enlace de Netscaler para que utilicen HTTPS en lugar de HTTP al conectarse al controlador de entrega.

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

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

  1. Ejecute 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. Abra el archivo C:\Archivos de programa\Citrix\Monitor\Service\Citrix.Monitor.exe.Config con un editor de texto. Encuentra el elemento &lt;add key="owin:baseAddress" value="http://localhost/citrix/monitor/odata/v4" /&gt; y cámbialo a &lt;add key="owin:baseAddress" value="https://localhost/citrix/monitor/odata/v4" /&gt;.

Configurar conjuntos de cifrado

La lista de orden de suites de cifrado debe incluir las suites de cifrado TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384o TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (o ambas); y estas suites de cifrado deben preceder a cualquier suite de cifrado TLS_DHE_.

  1. Usando el Editor de directivas de grupo de Microsoft, vaya a Configuración del equipo > Plantillas administrativas > Red > Opciones de configuración SSL.
  2. Modifique la directiva “Orden de conjuntos de cifrado SSL”. De manera predeterminada, esta directiva está establecida en “No configurada”. Habilite esta directiva.
  3. Ordene los conjuntos de cifrado; quite aquellos conjuntos que no quiera usar.

Asegúrese de que TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384o TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 preceda a cualquier conjunto de cifrado TLS_DHE_.

En Microsoft Learn, consulte también Configuración del orden del conjunto de cifrado TLS.

Solo aplicar el tráfico HTTPS

Se recomienda configurar el servicio XML para ignorar el tráfico HTTP.

  1. Ejecutar regedit
  2. Abra HKLM\Software\Citrix\DesktopServer\
  3. Cree un nuevo valor DWORD con el nombre XmlServicesEnableNonSsl y configúrelo en 0.
  4. Reinicie el servicio del broker.

Hay un valor DWORD de registro correspondiente XmlServicesEnableSsl que puede crear para ignorar el tráfico HTTPS. Compruebe que no está establecido en 0.

Cambiar puertos HTTP o HTTPS

De forma predeterminada, el XML Service en el Controller escucha en los puertos 80 para el tráfico HTTP y 443 para el tráfico HTTPS. Aunque se pueden utilizar otros puertos distintos de los predeterminados, tenga en cuenta los riesgos de seguridad que implica la exposición de un Controller a redes que no son de confianza. Antes que cambiar los valores predeterminados, es preferible implementar un servidor de StoreFront independiente.

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

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

donde &lt;http-port&gt; es el número de puerto para el tráfico HTTP y &lt;https-port&gt; es el número de puerto para el tráfico HTTPS.

Nota:

Después de cambiar de un puerto, Studio puede mostrar un mensaje acerca de la actualización y la compatibilidad de licencias. Para resolver el problema, vuelva a registrar las instancias de servicio mediante esta secuencia de cmdlet 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 controladores de entrega