Linux Virtual Delivery Agent

Configurar certificados autofirmados para WebSocket

A partir de la publicación inicial de Citrix Virtual Apps and Desktops 2402 LTSR, se puede 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 funcionalidad solo requiere el puerto TLS 443 para la comunicación del VDA al Delivery Controller. Para obtener más información, consulte Comunicación WebSocket entre el VDA y el Delivery Controller en la documentación de Citrix Virtual Apps and Desktops.

WebSocket es una potente tecnología que habilita la comunicación bidireccional en tiempo real entre un cliente y un servidor. Sin embargo, para garantizar una conexión segura, particularmente cuando se usa wss://, a menudo es necesario configurar un certificado autofirmado, especialmente en entornos de desarrollo o prueba. En este artículo se describen las prácticas recomendadas para configurar certificados autofirmados para WebSocket.

Paso 1: (solo para VDA que no están unidos a ningún dominio) Configurar el servidor DNS

  • Para VDA Ubuntu y Debian:
  1. Cambie los parámetros de DNS. Para ello, modifique /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. Reinicie el servicio systemd-resolved.

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

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

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

      sudo nmcli connection
    <!--NeedCopy-->
    
  2. Ejecute otro comando nmcli para configurar la dirección IP de DNS:

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

    Por ejemplo, puede configurar la dirección IP de DNS en 192.168.2.254 con el siguiente comando:

      sudo nmcli con mod eth0 ipv4.dns "192.168.2.254"
    <!--NeedCopy-->
    
  3. Vuelva a cargar los nuevos parámetros de DNS. Para ello, ejecute alguno de estos comandos:

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

    For more information, see https://www.cyberciti.biz/faq/change-dns-ip-address-rhel-redhat-linux/.

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

  1. Inicie una solicitud de certificado. Cuando inicie una solicitud de certificado, complete el nombre de dominio completo (FQDN) del Delivery Controller.

    Iniciar una solicitud de certificado

  2. Seleccione una longitud de 2048 bits o mayor para garantizar una seguridad sólida para el certificado.

    Seleccionar una longitud de bits

  3. Asigne un nombre descriptivo al archivo de solicitud de certificado para identificarlo fácilmente.

    Asignar nombre al archivo de solicitud de certificado

  4. Abra el archivo de solicitud de certificado generado en un editor de texto, como Bloc de notas, y seleccione todo el contenido.

    Abrir el archivo de solicitud de certificado generado

  5. Inicie sesión en su servidor de certificados web y proceda a solicitar un certificado.

    Iniciar sesión en el servidor de certificados web

    Solicitud de certificado avanzada

  6. Pegue el contenido del archivo de solicitud copiado en el campo correspondiente en el servidor web y seleccione la plantilla de certificado Servidor web.

    Enviar una solicitud de certificado

  7. Descargue el certificado en formato de codificación Base 64.

    Descargar el certificado

  8. Complete la solicitud de certificado. Al finalizar la descarga, el proceso de solicitud de certificado habrá terminado.

    Completar la solicitud de certificado

Paso 3: Vincular el certificado FQDN del Delivery Controller

  1. Exporte el certificado FQDN del Delivery Controller como archivo PFX.

    Exportar el certificado FQDN del Delivery Controller

  2. Importe el certificado PFX exportado en Internet Information Services (IIS), en el servidor del Delivery Controller.

    Importar el certificado PFX exportado

  3. Vincule el certificado importado a su sitio web predeterminado dentro de IIS.

    Vincular el certificado importado

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

    Seleccionar el certificado importado durante la vinculación

Paso 4: Guardar y actualizar el certificado de CA en Linux VDA

  1. Descargue el certificado de CA. Por ejemplo:

    Descargar un certificado de CA

  2. Coloque y actualice el certificado de CA.

    • Para RHEL y Rocky Linux:

      Use el comando trust anchor para agregar el certificado de CA. Asegúrese de que no se coloquen certificados manualmente en el directorio /etc/pki/ca-trust/source/anchors. Si encuentra errores relacionados con campos de solo lectura, quite todos los certificados presentes en ese directorio.

    • Para SUSE, Ubuntu y Debian:

      Coloque el certificado de CA raíz en el directorio /usr/local/share/ca-certificates. Si el certificado no tiene una extensión .crt, cámbiele el nombre según corresponda. A continuación, ejecute el comando update-ca-certificate.

Configurar certificados autofirmados para WebSocket