Habilitar TLS en los Delivery Controllers

Para habilitar TLS en un delivery controller™, debe:

Solicitar e instalar un certificado

Para usar TLS, debe instalar un certificado cuyo nombre alternativo incluya el FQDN del DDC. Debe crear un certificado adecuado. Esto se puede hacer utilizando una Autoridad de certificación de Microsoft u otras autoridades de certificación internas o externas.

Crear un certificado mediante la Autoridad de certificación de Microsoft

Si la Autoridad de certificación de Microsoft está integrada en un dominio de Active Directory o en el bosque de confianza al que están unidos los Delivery Controllers, puede adquirir un certificado desde el asistente de inscripción de certificados del complemento MMC de Certificados. La Autoridad de certificación de Microsoft debe tener una plantilla de certificado publicada adecuada para su uso por parte de los servidores web. Si utiliza un servidor Citrix Gateway o StoreFront™ en un dominio diferente, debe exportar el Certificado de la autoridad de certificación raíz e importarlo en Citrix Gateway y StoreFront.

  1. En el Delivery Controller, abra la consola MMC y agregue el complemento de Certificados. Cuando se le solicite, seleccione Cuenta de equipo.

  2. Expanda Personal > Certificados y, a continuación, utilice el comando del menú contextual Todas las tareas > Solicitar nuevo certificado.

    Complemento MMC de Certificados

  3. Haga clic en Siguiente para empezar y en Siguiente para confirmar que está adquiriendo el certificado de la inscripción de Active Directory.

  4. Seleccione una plantilla adecuada, como Servidor web exportable. Si la plantilla se ha configurado para proporcionar automáticamente los valores de Asunto, puede hacer clic en Inscribir sin proporcionar más detalles.

    Diálogo de solicitud de certificados

  5. Para proporcionar más detalles para la plantilla de certificado, haga clic en el botón de flecha Detalles y configure lo siguiente:

    Nombre del sujeto: seleccione Nombre común y agregue el FQDN del Delivery Controller.

    Nombre alternativo: seleccione DNS y agregue el FQDN del Delivery Controller.

    Propiedades del certificado

  6. Pulse Aceptar.

  7. Pulse Inscribir para crear e instalar el certificado

Instalar archivo de certificado existente

Si tiene un certificado existente como archivo, puede instalarlo:

  1. En el Delivery Controller, abra la consola MMC y agregue el complemento Certificados. Cuando se le solicite, seleccione Cuenta de equipo.

  2. Expanda Personal > Certificados, luego use el comando del menú contextual Todas las tareas > Importar.

  3. Busque el archivo de certificado.

Configuración del 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, 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 un enlace, elimínelo.

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

    Sustituya 0.0.0.0:443 por una dirección IP y un puerto específicos si se especificó uno en el enlace 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 muestra la huella digital

    Alternativamente, puede 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, esto fallará. Si hay varios certificados para el nombre de host, esto devolverá varias huellas digitales concatenadas y deberá 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 devolverá varias huellas digitales concatenadas y deberá elegir la huella digital adecuada.

  4. Para vincular 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: 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 Delivery Controller.

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 utilizar puertos no predeterminados, tenga en cuenta los riesgos de seguridad que implica exponer un Controller a redes no fiables. 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>

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