Habilitar TLS en los Delivery Controllers
De forma predeterminada, tanto HTTP como HTTPS están habilitados. HTTPS utiliza un certificado autofirmado con el FQDN del servidor como nombre común, que no es de confianza para StoreFront™ ni para los navegadores web.
Para habilitar TLS en un delivery controller™, debe:
-
Obtenga, instale y registre un certificado de servidor en todos los Delivery Controllers. Para obtener más información, consulte Solicitar e instalar un certificado.
-
Configure un puerto con el certificado TLS. Para obtener más información, consulte Instalar un certificado.
- Habilitar HTTPS para el servicio de supervisión.
-
Aplique el tráfico HTTPS inhabilitando HTTP. Para obtener más información, consulte Aplicar solo tráfico HTTPSAplicar solo tráfico HTTPS.
- Opcionalmente, puede cambiar los puertos que utiliza el Controller para escuchar el tráfico HTTP y HTTPS. Para obtener más información, consulte Cambiar puertos HTTP o HTTPS.
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 los FQDN del servidor y 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:
-
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--> -
Si hay un enlace existente, elimínelo.
netsh http delete sslcert ipport=0.0.0.0:443 <!--NeedCopy-->Sustituya
0.0.0.0:443por una dirección IP y un puerto específicos si se especificaron en el enlace existente. -
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.

También 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 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.
-
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
appidespecífico asociado al servicio Broker en lugar de un GUID arbitrario.Para encontrar el
appidcorrecto para el servicio Citrix Broker:-
Abra una ventana de comandos de PowerShell como administrador y ejecute el siguiente comando:
Get-WmiObject -Class Win32_Product | Select-String -Pattern "broker" <!--NeedCopy--> -
Localice el IdentifyingNumber (GUID) del servicio Citrix Broker en la salida (por ejemplo,
{D333C884-187F-447C-8C67-463F33989C8F}). Utilice este GUID para el parámetroappid.
-
-
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
bc96f958848639fd101a793b87915d5f2829b0b6al puerto443en 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 la API OData del servicio Monitor para HTTPS
El servicio Monitor proporciona API OData v3 y v4 para permitir que Citrix® y aplicaciones 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:
-
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--> -
Abra el archivo
C:\Program Files\Citrix\Monitor\Service\Citrix.Monitor.exe.Configcon 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_.
- Con el Editor de directivas de grupo de Microsoft, vaya a Configuración del equipo > Plantillas administrativas > Red > Configuración de SSL.
- Edite la directiva “Orden de conjuntos de cifrado SSL”. De forma predeterminada, esta directiva está establecida en “No configurada”. Establezca esta directiva en Habilitada.
- 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.
- Ejecute
regedit - Abra
HKLM\Software\Citrix\DesktopServer\ - Cree un nuevo valor DWORD con el nombre
XmlServicesEnableNonSsly establézcalo en 0. - 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 los 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. Implementar un servidor StoreFront independiente es preferible 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-->