WebSocket 用の自己署名証明書を構成する
2402 LTSR の初回リリース以降、Citrix Virtual Apps and Desktops では、Citrix Brokering Protocol (CBP) を介した WebSocket テクノロジーを使用して、VDA とデリバリーコントローラー間の通信を容易にすることができます。この機能では、VDA からデリバリーコントローラーへの通信に TLS ポート 443 のみが必要です。詳細については、Citrix Virtual Apps and Desktops ドキュメントの「VDA とデリバリーコントローラー間の WebSocket 通信」を参照してください。
WebSocket は、クライアントとサーバー間のリアルタイムで双方向の通信を可能にする強力なテクノロジーです。ただし、特に wss:// を使用する場合、安全な接続を確保するためには、開発環境やテスト環境では自己署名証明書の設定が必要になることがよくあります。この記事では、WebSocket 用の自己署名証明書を構成するためのベストプラクティスについて説明します。
ステップ 1: (ドメインに参加していない VDA のみ) DNS サーバーを構成する
- ウブントゥおよびデビアンVDAの場合:
-
/etc/systemd/resolved.conf を次のように編集して、DNS 設定を変更します。
[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--> -
DNS IP アドレスを設定するには、別の nmcli コマンドを実行します。
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) から証明書を要求する
-
証明書要求を開始します。証明書要求を開始する際は、Delivery Controller の完全修飾ドメイン名 (FQDN) を入力します。

-
証明書の堅牢なセキュリティを確保するために、2048 ビット以上のビット長を選択します。

-
識別しやすいように、証明書要求ファイルにわかりやすい名前を割り当てます。

-
生成された証明書要求ファイルをメモ帳などのテキストエディターで開き、その中のすべてのコンテンツを選択します。

-
Web 証明書サーバーにログインし、証明書を要求します。


-
コピーした要求ファイルの内容を Web サーバーの適切なフィールドに貼り付け、Web サーバー証明書テンプレートを選択します。

-
Base 64 エンコード形式で証明書をダウンロードします。

-
証明書要求を完了します。ダウンロードが完了すると、証明書要求プロセスは完了です。
証明書要求を完了する(/ja-jp/linux-virtual-delivery-agent/2511/media/complete-the-certificate-request.png)
ステップ3:Delivery Controller の FQDN 証明書をバインドする
-
Delivery Controller FQDN証明書をPFXファイルとしてエクスポートします。

-
エクスポートしたPFX証明書を、デリバリーコントローラーサーバーのインターネットインフォメーションサービス (IIS) にインポートします。
エクスポートしたPFX証明書をインポートする(/ja-jp/linux-virtual-delivery-agent/2511/media/import-the-exported-pex-certificate.png)
-
インポートした証明書をIIS内のデフォルトWebサイトにバインドします。
インポートした証明書をバインドする(/ja-jp/linux-virtual-delivery-agent/2511/media/bind-the-imported-certificate.png)
-
バインド処理中に、インポートした特定の証明書を選択していることを確認してください。
バインド中にインポートした証明書を選択する(/ja-jp/linux-virtual-delivery-agent/2511/media/select-the-imported-certificate-during-binding.png)
ステップ4:Linux VDAでCA証明書を保存および更新する
-
CA証明書をダウンロードします。例:
CA証明書をダウンロードする(/ja-jp/linux-virtual-delivery-agent/2511/media/download-ca-certificate.png)
-
CA証明書を配置して更新します。
-
アールイーエイチエル および ロッキーリナックス の場合:
trust anchor <path/CA certificate> コマンドを使用して CA 証明書を追加します。/etc/pki/ca-trust/source/anchors ディレクトリに証明書が手動で配置されていないことを確認してください。読み取り専用フィールドに関連するエラーが発生した場合は、そのディレクトリにある証明書をすべて削除してください。
-
スーゼ、ウブントゥ、および デビアン の場合:
ルート CA 証明書を /usr/local/share/ca-certificates ディレクトリに配置します。証明書に .crt 拡張子がない場合は、それに応じて名前を変更してください。その後、update-ca-certificate コマンドを実行します。
-