为 WebSocket 配置自签名证书
从 2402 LTSR 的初始版本开始,Citrix Virtual Apps and Desktops 允许您通过 Citrix 代理协议 (CBP) 使用 WebSocket 技术,以促进 VDA 和交付控制器之间的通信。此功能仅需要 TLS 端口 443 用于 VDA 到交付控制器的通信。有关详细信息,请参阅 Citrix Virtual Apps and Desktops 文档中的 VDA 和交付控制器之间的 WebSocket 通信。
WebSocket 是一种强大的技术,可实现客户端和服务器之间的实时双向通信。但是,为了确保安全连接,尤其是在使用 wss:// 时,通常需要配置自签名证书,尤其是在开发或测试环境中。本文概述了为 WebSocket 配置自签名证书的最佳实践。
步骤 1:(仅适用于未加入域的 VDA)配置 DNS 服务器
- 对于 Ubuntu 和 Debian 虚拟投递代理:
-
通过编辑 /etc/systemd/resolved.conf 文件,按如下方式更改域名系统设置:
[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--> -
请执行重新启动 systemd-resolved 服务的操作。
sudo service systemd-resolved restart <!--NeedCopy-->有关详细信息,请参阅 https://notes.enovision.net/linux/changing-dns-with-resolve。
- 适用于 RHEL、Rocky Linux 和 SUSE 操作系统上的虚拟桌面代理:
-
运行以下 nmcli 命令以获取连接名称列表:
sudo nmcli connection <!--NeedCopy--> -
运行另一个 nmcli 命令以设置 DNS IP 地址:
sudo nmcli con mod {connectionNameHere} ipv4.dns "<dns ip address>" <!--NeedCopy-->例如,您可以使用以下命令将 DNS IP 地址设置为 192.168.2.254:
sudo nmcli con mod eth0 ipv4.dns "192.168.2.254" <!--NeedCopy--> -
通过运行以下任一命令重新加载新的 DNS 设置:
sudo systemctl restart NetworkManager.service <!--NeedCopy-->sudo nmcli connection reload <!--NeedCopy-->有关详细信息,请参阅 https://www.cyberciti.biz/faq/change-dns-ip-address-rhel-redhat-linux/。
步骤 2:从证书颁发机构 (CA) 请求证书
-
发起证书请求。发起证书请求时,填写交付控制器的完全限定域名 (FQDN)。

-
选择 2048 或更高的位长度,以确保证书的强大安全性。

-
为证书请求文件指定一个描述性名称,以便于识别。

-
使用记事本等文本编辑器打开生成的证书请求文件,并选择其中的所有内容。

-
登录到您的 Web 证书服务器,然后继续请求证书。


-
将复制的请求文件内容粘贴到 Web 服务器上的相应字段中,然后选择 Web 服务器证书模板。

-
下载 Base 64 编码格式的证书。

-
完成证书请求。下载完成后,证书请求过程即告完成。
完成证书请求(/zh-cn/linux-virtual-delivery-agent/2511/media/complete-the-certificate-request.png)
步骤 3:绑定交付控制器 FQDN 证书
-
将交付控制器 FQDN 证书导出为 PFX 文件。
导出交付控制器 FQDN 证书(/zh-cn/linux-virtual-delivery-agent/2511/media/export-the-delivery-controller-fqdn-certificate.png)
-
将导出的 PFX 证书导入到您的交付控制器服务器的 Internet 信息服务 (IIS) 中。
导入导出的 PFX 证书(/zh-cn/linux-virtual-delivery-agent/2511/media/import-the-exported-pex-certificate.png)
-
将导入的证书绑定到 IIS 中的默认网站。
绑定导入的证书(/zh-cn/linux-virtual-delivery-agent/2511/media/bind-the-imported-certificate.png)
-
在绑定过程中,请务必选择您已导入的特定证书。
在绑定过程中选择导入的证书(/zh-cn/linux-virtual-delivery-agent/2511/media/select-the-imported-certificate-during-binding.png)
步骤 4:在 Linux VDA 上保存并更新 CA 证书
-
下载 CA 证书。例如:
下载 CA 证书(/zh-cn/linux-virtual-delivery-agent/2511/media/download-ca-certificate.png)
-
放置并更新 CA 证书。
-
适用于 红帽企业版 Linux 和 洛基 Linux:
使用 trust anchor <path/CA certificate> 命令添加 CA 证书。确保没有证书手动放置在 /etc/pki/ca-trust/source/anchors 目录中。如果遇到与只读字段相关的错误,请删除该目录中存在的任何证书。
-
适用于 SUSE、乌班图 和 德比安:
将根 CA 证书放置到 /usr/local/share/ca-certificates 目录中。如果该证书不具有 .crt 扩展名,请将其相应地重命名。然后,请运行 update-ca-certificate 命令。
-