Agente de entrega virtual de Linux 2507 LTSR

Configura certificados autofirmados para WebSocket

A partir de la versión inicial de 2402 LTSR, Citrix Virtual Apps and Desktops te permite usar la tecnología WebSocket a través del Protocolo de intermediación de Citrix (CBP) para facilitar la comunicación entre los VDA y los Delivery Controllers. Esta función solo requiere el puerto TLS 443 para la comunicación del VDA con el Delivery Controller. Para obtener más información, consulta Comunicación WebSocket entre VDA y Delivery Controller en la documentación de Citrix Virtual Apps and Desktops.

  • WebSocket es una tecnología potente para habilitar la comunicación bidireccional en tiempo real entre un cliente y un servidor. Sin embargo, para garantizar una conexión segura, especialmente al usar wss://, a menudo es necesario configurar un certificado autofirmado, sobre todo en entornos de desarrollo o prueba. Este artículo describe las mejores prácticas para configurar certificados autofirmados para WebSocket.

Paso 1: (Solo para VDA no unidos a un dominio) Configura el servidor DNS

  • Para VDA de Ubuntu y Debian:
  1. Cambia la configuración de DNS editando /etc/systemd/resolved.conf de la siguiente manera:

    [Resolve]
    # Some examples of DNS servers which may be used for DNS= and FallbackDNS=:
    # Cloudflare: 1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com 2606:4700:4700::1111#cloudflare-dns.com 2606:4700:4700::1001#cloudflare-dns.com
    # Google:     8.8.8.8#dns.google 8.8.4.4#dns.google 2001:4860:4860::8888#dns.google 2001:4860:4860::8844#dns.google
    # Quad9:      9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net 2620:fe::fe#dns.quad9.net 2620:fe::9#dns.quad9.net
    DNS=<DNS IP address>
    #FallbackDNS=
    #Domains=
    #DNSSEC=no
    #DNSOverTLS=no
    #MulticastDNS=no
    #LLMNR=no
    #Cache=no-negative
    #CacheFromLocalhost=no
    #DNSStubListener=yes
    #DNSStubListenerExtra=
    #ReadEtcHosts=yes
    #ResolveUnicastSingleLabel=no
    <!--NeedCopy-->
    
  2. Reinicia el servicio systemd-resolved.

    sudo service systemd-resolved restart
    <!--NeedCopy-->
    

    Para obtener más información, consulta https://notes.enovision.net/linux/changing-dns-with-resolve.

    • Para VDA de RHEL, Rocky Linux y SUSE:
  3. Ejecuta el siguiente comando nmcli para obtener una lista de nombres de conexión:

    sudo nmcli connection
    <!--NeedCopy-->
    
  4. Ejecuta otro comando nmcli para configurar la dirección IP del DNS:

    sudo nmcli con mod {connectionNameHere} ipv4.dns "<dns ip address>"
    <!--NeedCopy-->
    

    Por ejemplo, puedes establecer la dirección IP del DNS en 192.168.2.254 usando el siguiente comando:

    sudo nmcli con mod eth0 ipv4.dns "192.168.2.254"
    <!--NeedCopy-->
    
  5. Vuelve a cargar la nueva configuración de DNS ejecutando cualquiera de los siguientes comandos:

    sudo systemctl restart NetworkManager.service
    <!--NeedCopy-->
    
    sudo nmcli connection reload
    <!--NeedCopy-->
    

    Para obtener más información, consulta https://www.cyberciti.biz/faq/change-dns-ip-address-rhel-redhat-linux/.

Paso 2: Solicita un certificado a una entidad de certificación (CA)

  1. Inicia una solicitud de certificado. Cuando inicies una solicitud de certificado, rellena el nombre de dominio completo (FQDN) del Delivery Controller.

    Iniciar una solicitud de certificado

  2. Selecciona una longitud de bits de 2048 o superior para garantizar una seguridad sólida para tu certificado.

    Seleccionar una longitud de bits

      1. Asigna un nombre descriptivo a tu archivo de solicitud de certificado para facilitar su identificación.
    • Asignar un nombre al archivo de solicitud de certificado
  3. Abre el archivo de solicitud de certificado generado usando un editor de texto como el Bloc de notas y selecciona todo el contenido.

    Abrir el archivo de solicitud de certificado generado

  4. Inicia sesión en tu servidor de certificados web y procede a solicitar un certificado.

    Iniciar sesión en tu servidor de certificados web

    Solicitud de certificado avanzada

  5. Pega el contenido del archivo de solicitud copiado en el campo correspondiente del servidor web y selecciona la plantilla de certificado Servidor web.

    Enviar una solicitud de certificado

  6. Descarga el certificado en formato codificado en Base 64.

    Descargar el certificado

  7. Completa la solicitud de certificado. Una vez descargado, el proceso de solicitud de certificado se habrá completado.

    Completar la solicitud de certificado

Paso 3: Vincula el certificado FQDN del Delivery Controller

  1. Exporta el certificado FQDN del Delivery Controller como un archivo PFX.

    Exportar el certificado FQDN del Delivery Controller

  2. Importa el certificado PFX exportado a los Servicios de información de Internet (IIS) de tu servidor Delivery Controller.

    Importar el certificado PFX exportado

  3. Vincula el certificado importado a tu sitio web predeterminado dentro de IIS.

    Vincular el certificado importado

  4. Durante el proceso de vinculación, asegúrate de seleccionar el certificado específico que importaste.

    Seleccionar el certificado importado durante la vinculación

Paso 4: Guarda y actualiza el certificado de CA en el VDA de Linux

  1. Descarga el certificado de CA. Por ejemplo:

    Descargar un certificado de CA

  2. Coloca y actualiza el certificado de CA.

    • Para RHEL y Rocky Linux:

      Usa el comando trust anchor <path/CA certificate> para agregar el certificado de CA. Asegúrate de que no haya certificados colocados manualmente en el directorio /etc/pki/ca-trust/source/anchors. Si encuentras errores relacionados con campos de solo lectura, quita los certificados presentes en ese directorio.

    • Para SUSE, Ubuntu y Debian:

      Coloca el certificado raíz de CA en el directorio /usr/local/share/ca-certificates. Si el certificado no tiene una extensión .crt, cámbiale el nombre según corresponda. Luego, ejecuta el comando update-ca-certificate.

Configura certificados autofirmados para WebSocket