SSL

La configuración de un sitio de XenApp o XenDesktop para usar el protocolo de seguridad Secure Sockets Layer (SSL) incluye los siguientes procedimientos:

  • Obtener, instalar y registrar un certificado de servidor en todos los Delivery Controllers y configurar un puerto con el certificado SSL. Para obtener más información, consulte Instalación de certificados de servidor SSL en los Controllers.

    Si lo desea, puede cambiar los puertos que Controller utiliza para escuchar el tráfico HTTP y HTTPS.

  • Habilite las conexiones SSL entre los usuarios y los agentes VDA (Virtual Delivery Agent) completando las siguientes tareas:

    Requisitos y consideraciones:

    • La habilitación de conexiones SSL entre los usuarios y los VDA solo es válida para los sitios de XenApp 7.6 y XenDesktop 7.6 y versiones posteriores respaldadas.
    • Configure SSL en los grupos de entrega y en los VDA después de instalar los componentes, crear un sitio, crear catálogos de máquinas y crear grupos de entrega.
    • Para configurar SSL en los grupos de entrega, debe tener permiso para cambiar las reglas de acceso de Controllers; los administradores totales tienen este permiso.
    • Para configurar SSL en los VDA, debe ser un administrador Windows en la máquina donde está instalado el VDA.
    • Si tiene pensado configurar SSL en los VDA que se han actualizado desde versiones más antiguas, desinstale cualquier software de traspaso SSL que haya en esas máquinas antes de actualizarlas.
    • El script de PowerShell configura SSL en VDA estáticos, no lo configura en VDA agrupados y aprovisionados por Machine Creation Services o Provisioning Services, en los que la imagen de la máquina se restablece con cada reinicio.

En el caso de tareas que requieren trabajar con el Registro de Windows:

Precaución: Si modifica el Registro de forma incorrecta, podrían generarse problemas graves que pueden provocar la reinstalación del sistema operativo. Citrix no puede garantizar que los problemas derivados de la utilización inadecuada del Editor del Registro puedan resolverse. Si utiliza el Editor del Registro, será bajo su propia responsabilidad. Haga una copia de seguridad del Registro antes de modificarlo.

Para obtener información acerca de la habilitación de SSL para la base de datos del sitio, consulte CTX137556.

Instale certificados de servidor SSL en los Controllers

Para HTTPS, XML Service respalda las funciones de SSL mediante el uso de certificados de servidor, pero no de certificados de cliente. Para obtener, instalar y registrar un certificado en un Controller y para configurar un puerto con el certificado SSL:

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 StoreFront independiente.

Para cambiar los puertos HTTP o HTTPS predeterminados usados por el Controller, ejecute el comando siguiente en Studio: BrokerService.exe -WIPORT <puerto http> -WISSLPORT <puerto https>

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

Nota: Después de cambiar 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

Solo aplicar el tráfico HTTPS

Si quiere que XML Service ignore el tráfico HTTP, establezca el siguiente valor de Registro en HKLM\Software\Citrix\DesktopServer\ en el Controller y reinicie el Broker Service.

Para ignorar el tráfico HTTPS, establezca el valor de XmlServicesEnableNonSsl en 0.

Existe un valor de Registro correspondiente para ignorar el tráfico HTTPS: XmlServicesEnableSsl. Compruebe que no está establecido en 0.

Acerca de los parámetros de SSL en los VDA

Al configurar SSL en los VDA, esto cambia los permisos del certificado SSL instalado, lo que da al servicio ICA acceso de lectura a la clave privada del certificado e informa al ICA Service de lo siguiente:

  • Qué certificado del almacén de certificados hay que usar para SSL.

  • Qué número de puerto TCP hay que usar para las conexiones SSL.

    El Firewall de Windows (si está habilitado) debe estar configurado para permitir conexiones entrantes en este puerto TCP. Esta configuración se lleva a cabo cuando se usa el script de PowerShell.

  • Qué versiones del protocolo SSL deben permitirse.

    Las versiones respaldadas del protocolo SSL siguen una jerarquía (de menor a mayor): SSL 3.0, TLS 1.0, TLS 1.1 y TLS 1.2. Debe especificar la versión mínima permitida; se permitirán todas las conexiones que usen esa versión del protocolo o una versión más alta.

    Por ejemplo, si especifica TLS 1.1 como la versión mínima, se permitirán conexiones con TLS 1.1 y TLS 1.2. Si elige SSL 3.0 como la versión mínima, se permitirán conexiones con todas las versiones respaldadas. Si especifica TLS 1.2 como la versión mínima, solo se permiten conexiones con TLS 1.2.

  • Qué cifrados SSL debe permitirse.

    Un conjunto de cifrado es una lista de cifrados SSL comunes. Cuando un cliente se conecta y envía una lista de cifrados SSL respaldados, el VDA asigna uno de los cifrados del cliente a uno de los cifrados de su conjunto de cifrados configurado y acepta la conexión. Si el cliente envía un cifrado que no está en el conjunto de cifrado del VDA, el VDA rechazará la conexión.

    Se admiten tres conjuntos de cifrado: GOV (Government), COM (Commercial) y ALL. Los cifrados en esos conjuntos de cifrado dependen del modo FIPS de Windows; consulte http://support.microsoft.com/kb/811833 para obtener información sobre el modo FIPS de Windows. La siguiente tabla enumera los cifrados de cada conjunto de cifrado respaldado.

                 
    Conjunto de cifrado SSL GOV COM Todo GOV COM Todo
    Modo FIPS No No No
    RSA_KEYX x x x x x x
    RSA_SIGN x x x x x x
    3DES x   x x   x
    RC4   x x      
    MD5 x x x      
    SHA x x x x x x
    SHA_256 x x x x x x
    SHA_384 x x x x x x
    SHA_512 x x x x x x
    AES x x x x x x

Un grupo de entrega no puede incluir una mezcla de VDA con SSL configurado y VDA sin SSL configurado. Al configurar SSL para un grupo de entrega, debe haber configurado SSL para todos los VDA en ese grupo de entrega.

Configuración de SSL en un agente VDA mediante el script de PowerShell

El script Enable-VdaSSL.ps1 habilita o inhabilita la escucha de SSL en un VDA. Este script está disponible en la carpeta Support > Tools > SslSupport de los medios de instalación.

Al habilitar SSL, el script inhabilita todas las reglas de Firewall de Windows para el puerto TCP especificado antes de agregar una nueva regla que permite que el servicio ICA acepte conexiones entrantes en el puerto TCP SSL. También inhabilita las reglas de Firewall de Windows para:

  • Citrix ICA (predeterminado: 1494)
  • Citrix CGP (predeterminado: 2598)
  • Citrix WebSocket (predeterminado: 8008)

Como resultado, los usuarios solo pueden conectarse sobre SSL; no pueden usar ICA, CGP o WebSocket estándar para conectar.

El script contiene las siguientes descripciones de sintaxis, además de ejemplos adicionales; puede usar una herramienta como Notepad++ para consultar esta información.

Debe especificar el parámetro –Enable o –Disable; todos los demás parámetros son optativos.

Sintaxis:

Enable-VdaSSL {-Enable -Disable} [–SSLPort <port>] [-SSLMinVersion “<min-ssl-version>”] [-SSLCipherSuite “<suite>”] [-CertificateThumbPrint “<thumbprint>”]
Parámetro Descripción
-Enable Instala y habilita la escucha de SSL en el VDA. Este parámetro, o el parámetro -Disable, es obligatorio.
-Disable Inhabilita la escucha de SSL en el VDA. Este parámetro, o el parámetro -Enable, es obligatorio. Si se especifica este parámetro, ningún otro parámetro es válido.
–SSLPort <puerto> Puerto SSL. Valor predeterminado: 443
-SSLMinVersion “ Versión mínima del protocolo SSL, entre comillas. Valores válidos: “SSL_3.0”, “TLS_1.0”, “TLS_1.1” y “TLS_1.2”. Valor predeterminado: “TLS_1.0”
-SSLCipherSuite “<conjunto de cifrado>” Conjunto de cifrado SSL, entre comillas. Valores válidos: “GOV”, “COM” y “ALL”. Valor predeterminado: “ALL”
-CertificateThumbPrint “<huella digital>” Huella digital del certificado SSL en el almacén de certificados, entre comillas. Este parámetro se utiliza generalmente cuando el almacén de certificados tiene varios certificados; el script usa la huella digital para seleccionar el certificado que desea usar. Valor predeterminado: el primer certificado disponible que se encuentre en el almacén de certificados bajo Equipo local > Personal > Certificados.

Ejemplos:

El siguiente script instala y habilita la escucha de SSL, usando los valores predeterminados para todos los parámetros opcionales.

Enable-VdaSSL –Enable

El siguiente script instala y habilita la escucha de SSL, y especifica el puerto SSL 400, el conjunto de cifrado GOV y una versión de protocolo SSL mínima de TLS 1.2.

Enable-VdaSSL – Enable –SSLPort 400 ‘SSLMinVersion “TLS_1.2”
–SSLCipherSuite “GOV”

El siguiente script inhabilita la escucha de SSL en el VDA.

Enable-VdaSSL –Disable

Configuración manual de SSL en un agente VDA

Al configurar SSL en un VDA manualmente, se concede acceso genérico de lectura a la clave privada del certificado SSL para el servicio apropiado en cada VDA: NT SERVICE\PorticaService para VDA de SO de escritorio Windows, o NT SERVICE\TermService para VDA de SO de servidor Windows. En la máquina donde está instalado el VDA:

  1. Abra la consola Microsoft Management Console (MMC): Inicio > Ejecutar > mmc.exe.
  2. Agregue el complemento Certificados en la consola MMC:
    1. Seleccione Archivo > Agregar o quitar complemento.
    2. Seleccione Certificados y haga clic en Agregar.
    3. En “Este complemento administrará siempre certificados de”, elija Cuenta de equipo y luego haga clic en Siguiente.
    4. En “Seleccione el equipo que desea administrar con este complemento”, elija Equipo local y, a continuación, haga clic en Finalizar.
  3. En Certificados (Equipo local) > Personal > Certificados, haga clic con el botón secundario en el certificado y seleccione Todas las tareas > Administrar claves privadas.
  4. El editor de lista de control de acceso muestra “Permisos de claves privadas de (nombre)” donde (nombre) es el nombre del certificado SSL. Agregue uno de los siguientes servicios y déle acceso de lectura:
    • Para un VDA de SO de escritorio Windows, “PORTICASERVICE”
    • Para un VDA de SO de servidor Windows, “TERMSERVICE”
  5. Haga doble clic en el certificado SSL instalado. En el cuadro de diálogo del certificado, seleccione la ficha Detalles y desplácese a la parte inferior. Haga clic en Huella digital.
  6. Ejecute regedit y vaya a HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd.
    1. Edite la clave de huella digital SSL Thumbprint y copie en el valor binario la huella digital que figura en el certificado SSL. Puede ignorar los elementos desconocidos del diálogo Editar valor binario (por ejemplo, ‘0000’ y los caracteres especiales).
    2. Edite la clave SSLEnabled y cambie el valor DWORD a 1. (Para inhabilitar SSL más adelante, cambie el valor DWORD a 0.)
    3. Si desea cambiar la configuración predeterminada (optativo), use lo siguiente en la misma ruta de Registro:
      • SSLPort DWORD – número de puerto SSL. Valor predeterminado: 443.
      • SSLMinVersion DWORD – 1 = SSL 3.0, 2 = TLS 1.0, 3 = TLS 1.1, 4 = TLS 1.2. Valor predeterminado: 2 (TLS 1.0).
      • SSLCipherSuite DWORD – 1 = GOV, 2 = COM, 3 = ALL. Valor predeterminado: 3 (ALL).
  7. Asegúrese de que el puerto TCP de SSL está abierto en el Firewall de Windows, si no es el predeterminado 443. (Cuando cree la regla de entrada en el Firewall de Windows, compruebe que tenga las entradas “Permitir la conexión” y “Habilitada” están seleccionadas en las propiedades.)
  8. Asegúrese de que no hay otros servicios o aplicaciones (por ejemplo, IIS) que estén usando el puerto TCP de SSL.
  9. Para los VDA para SO de servidor Windows, reinicie la máquina para que los cambios tengan efecto. (No es necesario reiniciar las máquinas que contienen los VDA para SO de escritorio Windows.)

Configuración de SSL en los grupos de entrega

Lleve a cabo este procedimiento para cada grupo de entrega que contenga VDA configurados para conexiones SSL.

  1. Desde Studio, abra la consola de PowerShell.

  2. Ejecute asnp Citrix.* para cargar los cmdlets de producto Citrix.

  3. Ejecute Get-BrokerAccessPolicyRule –DesktopGroupName ‘<nombre del grupo de entrega>’ | Set-BrokerAccessPolicyRule –HdxSslEnabled $true.

    donde <nombre del grupo de entrega> es el nombre del grupo de entrega que contiene los VDA.

  4. Ejecute Set-BrokerSite –DnsResolutionEnabled $true.

Solucionar problemas

Si se produce un error de conexión, compruebe el registro de eventos del sistema en el VDA.

Cuando se usa Receiver para Windows, si recibe un error de conexión (como el error 1030) que indica un error SSL, inhabilite Desktop Viewer y, a continuación, intente conectar de nuevo; aunque la conexión fallará otra vez, es posible que esta vez obtenga una explicación del problema de SSL subyacente (por ejemplo, si especificó una plantilla incorrecta al solicitar un certificado de la entidad de certificación).