Configurar certificados autofirmados para WebSocket

A partir de la versión inicial de 2402 LTSR, Citrix Virtual Apps and Desktops le permite utilizar 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 al Delivery Controller. Para obtener más información, consulte 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) Configurar el servidor DNS

  • Para VDA de Ubuntu y Debian:
  1. Cambie 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. 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 de 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 del DNS:

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

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

    sudo nmcli con mod eth0 ipv4.dns "192.168.2.254"
    <!--NeedCopy-->
    
  3. Vuelva 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, consulte 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, rellene el nombre de dominio completo (FQDN) del Delivery Controller.

    Iniciar una solicitud de certificado

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

    Seleccionar una longitud de bits

  3. Asigne un nombre descriptivo a su archivo de solicitud de certificado para facilitar su identificación.

    Asignar nombre al archivo de solicitud de certificado

  4. Abra el archivo de solicitud de certificado generado con un editor de texto como el 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 su servidor de certificados web

    Solicitud de certificado avanzada

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

    Enviar una solicitud de certificado

  7. Descargue el certificado en formato codificado Base 64.

    Descargar el certificado

  8. Complete la solicitud de certificado. Una vez descargado, el proceso de solicitud de certificado se habrá completado.

    Complete la solicitud de certificado(/es-es/linux-virtual-delivery-agent/2511/media/complete-the-certificate-request.png)

Paso 3: Vincular el certificado FQDN del Delivery Controller

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

    Exportar el certificado FQDN del Delivery Controller(/es-es/linux-virtual-delivery-agent/2511/media/export-the-delivery-controller-fqdn-certificate.png)

  2. Importe el certificado PFX exportado en los Servicios de información de Internet (IIS) de su servidor Delivery Controller.

    Importar el certificado PFX exportado(/es-es/linux-virtual-delivery-agent/2511/media/import-the-exported-pex-certificate.png)

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

    Vincular el certificado importado(/es-es/linux-virtual-delivery-agent/2511/media/bind-the-imported-certificate.png)

  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(/es-es/linux-virtual-delivery-agent/2511/media/select-the-imported-certificate-during-binding.png)

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

  1. Descargue el certificado de CA. Por ejemplo:

    Descargar un certificado de CA(/es-es/linux-virtual-delivery-agent/2511/media/download-ca-certificate.png)

  2. Coloque y actualice el certificado de CA.

    • Para RHEL y Rocky Linux:

      Utilice el comando trust anchor <path/CA certificate> para añadir 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, elimine 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. Luego, ejecute el comando update-ca-certificate.

Configurar certificados autofirmados para WebSocket