Citrix Virtual Apps and Desktops 7 2402 LTSR

Habilitar TLS en los Delivery Controllers

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

Para habilitar TLS en un delivery controller™, debe:

Solicitar e instalar un certificado

Para usar TLS, debe instalar un certificado cuyo Nombre común o Nombre alternativo del sujeto coincida con el FQDN del servidor. Si utiliza un equilibrador de carga delante de los delivery controllers, incluya tanto el FQDN del servidor como el del equilibrador de carga como Nombres alternativos del sujeto. Para obtener más información, consulte Certificados. Para que StoreFront se conecte al delivery controller, debe utilizar un algoritmo de firma digital RSA. StoreFront no admite certificados que utilicen el algoritmo ECDSA.

Configuración del 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 vinculado, abra un símbolo del sistema y ejecute netsh http show sslcert:

    netsh http show sslcert
    <!--NeedCopy-->
    
  2. Si existe una vinculación, elimínela.

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

    Reemplazando 0.0.0.0:443 por una dirección IP y un puerto específicos si se especificó uno en la vinculación existente.

  3. Busque la huella digital del certificado que instaló anteriormente. Para ver la huella digital, abra Administrar certificados de equipo, busque el certificado, ábralo y vaya a la pestaña Detalles.

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

    Alternativamente, puede usar PowerShell. Por ejemplo, el siguiente script busca un certificado cuyo nombre común coincide 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 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 y debe elegir la huella digital adecuada.

  4. Para vincular el certificado al puerto, use 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, puede especificar una dirección IP concreta.

    • certhash: La huella digital del certificado que identificó en el paso anterior.
    • appid: El GUID del servicio Citrix Broker.

      Nota:

      Al renovar un certificado o volver a vincularlo, utilice 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. Abra una ventana de comandos de PowerShell como administrador y ejecute el siguiente comando:

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

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

    Por ejemplo, ejecute el siguiente comando para vincular 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, debe configurar cualquier implementación de StoreFront y Netscaler Gateways para que utilicen HTTPS en lugar de HTTP para conectarse al controlador de entrega.

Configurar la API OData del servicio Monitor para HTTPS

El servicio Monitor 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 monitor para HTTPS, siga estos 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:\Program Files\Citrix\Monitor\Service\Citrix.Monitor.exe.Config con un editor de texto. Busque el elemento <add key="owin:baseAddress" value="http://localhost/citrix/monitor/odata/v4" /> y cámbielo 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, vaya a Configuración del equipo > Plantillas administrativas > Red > Configuración de SSL.
  2. Edite la directiva “Orden de conjuntos de cifrado SSL”. De forma predeterminada, esta directiva está establecida en “No configurada”. Establezca esta directiva en Habilitada.
  3. Organice los conjuntos en el orden correcto; elimine cualquier conjunto de cifrado que no desee utilizar.

Asegúrese 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, consulte también Configuración del orden de los conjuntos de cifrado TLS.

Aplicar solo tráfico HTTPS

Se recomienda configurar el Servicio XML para que ignore el tráfico HTTP.

  1. Ejecute regedit
  2. Abra HKLM\Software\Citrix\DesktopServer\
  3. Cree un nuevo valor DWORD con el nombre XmlServicesEnableNonSsl y establézcalo en 0.
  4. Reinicie el Servicio Broker.

Existe un valor DWORD de registro correspondiente XmlServicesEnableSsl que puede crear para ignorar el tráfico HTTPS. Asegúrese 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 puede usar puertos no predeterminados, tenga en cuenta los riesgos de seguridad que implica exponer un Controller a redes que no son de confianza. Es preferible implementar un servidor StoreFront independiente a cambiar los valores predeterminados.

Para cambiar los puertos HTTP o HTTPS predeterminados utilizados por el Controller, ejecute 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 y <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, vuelva 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