WebSocket 用の自己署名証明書を構成する

最終公開日 : Nov 13, 2026
2402 LTSR の初回リリース以降、Citrix Virtual Apps and Desktops では、Citrix Brokering Protocol (CBP) を介して WebSocket テクノロジーを使用し、VDA と Delivery Controller 間の通信を容易にすることができます。この機能では、VDA から Delivery Controller への通信に TLS ポート 443 のみが必要です。詳細については、Citrix Virtual Apps and Desktops のドキュメントにある「VDA と Delivery Controller 間の WebSocket 通信」を参照してください。
WebSocket は、クライアントとサーバー間のリアルタイムで双方向の通信を可能にする強力なテクノロジーです。ただし、特に wss:// を使用する場合に安全な接続を確保するには、特に開発環境やテスト環境では、自己署名証明書の設定が必要になることがよくあります。この記事では、WebSocket 用の自己署名証明書を構成するためのベストプラクティスについて説明します。

ステップ 1: (ドメインに参加していない VDA のみ) DNS サーバーを構成する

  • Ubuntu および Debian VDA の場合:
  1. /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
  2. systemd-resolved サービスを再起動します。
    sudo service systemd-resolved restart
    詳細については、<https://notes.enovision.net/linux/changing-dns-with-resolve>を参照してください。
  • RHEL、Rocky Linux、および SUSE VDA の場合:
  1. 次の nmcli コマンドを実行して、接続名の一覧を取得します。
    sudo nmcli connection
  2. 別の nmcli コマンドを実行して、DNS IP アドレスを設定します。
    sudo nmcli con mod {connectionNameHere} ipv4.dns "<dns ip address>"
    たとえば、次のコマンドを使用して DNS IP アドレスを 192.168.2.254 に設定できます。
    sudo nmcli con mod eth0 ipv4.dns "192.168.2.254"
  3. 次のいずれかのコマンドを実行して、新しい DNS 設定をリロードします。
    sudo systemctl restart NetworkManager.servicesudo nmcli connection reload
    詳細については、<https://www.cyberciti.biz/faq/change-dns-ip-address-rhel-redhat-linux/>を参照してください。

ステップ 2: 証明機関 (CA) から証明書を要求する

  1. 証明書要求を開始します。証明書要求を開始するときは、Delivery Controller の完全修飾ドメイン名 (FQDN) を入力します。
    証明書要求を開始する
  2. 証明書の堅牢なセキュリティを確保するために、2048ビット以上のビット長を選択します。
    ビット長を選択するSelect a bit length
  3. 識別しやすいように、証明書要求ファイルにわかりやすい名前を付けます。
    証明書要求ファイルに名前を付けるName the certificate request file
  4. 生成された証明書要求ファイルをメモ帳などのテキストエディターで開き、その中のすべてのコンテンツを選択します。
    生成された証明書要求ファイルを開くOpen the generated certificate request file
  5. Web証明書サーバーにログインし、証明書を要求する手順に進みます。
    Web証明書サーバーにログインするLog in to your web certificate server
    高度な証明書要求Advanced certificate request
  6. コピーした要求ファイルの内容をWebサーバーの適切なフィールドに貼り付け、Webサーバー証明書テンプレートを選択します。
    証明書要求を送信するSubmit a certificate request
  7. Base 64エンコード形式で証明書をダウンロードします。
    証明書をダウンロードするDownload the certificate
  8. 証明書要求を完了します。ダウンロードが完了すると、証明書要求プロセスは完了です。
    証明書要求を完了するComplete the certificate request

Step 3: Delivery Controller FQDN証明書をバインドする

  1. Delivery Controller FQDN証明書をPFXファイルとしてエクスポートします。
    Delivery Controller FQDN証明書をエクスポートする(/en-us/linux-virtual-delivery-agent/2511/media/export-the-delivery-controller-fqdn-certificate.png)
  2. エクスポートしたPFX証明書を、Delivery ControllerサーバーのInternet Information Services (IIS) にインポートします。
    エクスポートしたPFX証明書をインポートする(/en-us/linux-virtual-delivery-agent/2511/media/import-the-exported-pex-certificate.png)
  3. インポートした証明書をIIS内のデフォルトWebサイトにバインドします。
    インポートした証明書をバインドする(/en-us/linux-virtual-delivery-agent/2511/media/bind-the-imported-certificate.png)
  4. バインド処理中に、インポートした特定の証明書を選択していることを確認してください。
    バインド中にインポートした証明書を選択する(/en-us/linux-virtual-delivery-agent/2511/media/select-the-imported-certificate-during-binding.png)

Step 4: Linux VDAでCA証明書を保存および更新する

  1. CA証明書をダウンロードします。例:
    CA証明書をダウンロードする(/en-us/linux-virtual-delivery-agent/2511/media/download-ca-certificate.png)
  2. CA証明書を配置して更新します。
    • RHELおよびRocky Linuxの場合:
      trust anchor <path/CA certificate> コマンドを使用して、CA証明書を追加します。/etc/pki/ca-trust/source/anchors ディレクトリに手動で証明書が配置されていないことを確認してください。読み取り専用フィールドに関連するエラーが発生した場合は、そのディレクトリに存在する証明書をすべて削除してください。
    • SUSE、Ubuntu、およびDebianの場合:
      ルートCA証明書を /usr/local/share/ca-certificates ディレクトリに配置します。証明書に .crt 拡張子がない場合は、それに応じて名前を変更します。その後、update-ca-certificate コマンドを実行します。