トランスポート層セキュリティ (TLS)

最終公開日 : Nov 13, 2026
Citrix Virtual Apps and Desktopsは、コンポーネント間のTCPベースの接続にTransport Layer Security (TLS) プロトコルをサポートしています。Citrix Virtual Apps and Desktopsは、アダプティブトランスポートを使用して、UDPベースのICA/HDX接続にDatagram Transport Layer Security (DTLS) プロトコルもサポートしています。
TLSとDTLSは似ており、同じデジタル証明書をサポートしています。Citrix Virtual AppsまたはCitrix Virtual Desktops™サイトをTLSを使用するように構成すると、DTLSを使用するようにも構成されます。次の手順を使用してください。記載されている箇所を除き、手順はTLSとDTLSの両方に共通です。
  • すべてのDelivery Controllerでサーバー証明書を取得、インストール、登録し、TLS証明書でポートを構成します。詳しくは、ControllerにTLSサーバー証明書をインストールするを参照してください。
    必要に応じて、ControllerがHTTPおよびHTTPSトラフィックをリッスンするために使用するポートを変更できます。
  • Citrix Workspace™アプリとVirtual Delivery Agent (VDA) 間でTLS接続を有効にするには、次のタスクを完了します。
    • VDAがインストールされているマシンでTLSを構成します。(便宜上、VDAがインストールされているマシンへの以降の参照は、単に「VDA」と呼びます。)一般情報については、VDAのTLS設定を参照してください。TLS/DTLSの構成には、Citrixが提供するPowerShellスクリプトを使用することを強くお勧めします。詳しくは、PowerShellスクリプトを使用してVDAでTLSを構成するを参照してください。ただし、TLS/DTLSを手動で構成する場合は、VDAでTLSを手動で構成するを参照してください。
    • VDAを含むデリバリーグループでTLSを構成するには、Studioで一連のPowerShellコマンドレットを実行します。詳しくは、デリバリーグループでTLSを構成するを参照してください。
      要件と考慮事項:
      • ユーザーとVDA間のTLS接続を有効にすることは、XenApp 7.6およびXenDesktop 7.6サイト、およびそれ以降のサポート対象リリースでのみ有効です。
      • デリバリーグループとVDAでTLSを構成するのは、コンポーネントのインストール、サイトの作成、マシンカタログの作成、およびデリバリーグループの作成後に行います。
      • デリバリーグループでTLSを構成するには、Controllerのアクセスルールを変更する権限が必要です。フル管理者にはこの権限があります。
      • VDAでTLSを構成するには、VDAがインストールされているマシンでWindows管理者である必要があります。
      • Machine Creation Services™またはProvisioning ServicesによってプロビジョニングされたプールされたVDAでは、VDAマシンイメージは再起動時にリセットされ、以前のTLS設定が失われます。VDAが再起動されるたびにPowerShellスクリプトを実行して、TLS設定を再構成してください。
警告:
Windowsレジストリでの作業を含むタスクの場合—レジストリを誤って編集すると、オペレーティングシステムの再インストールが必要になる深刻な問題が発生する可能性があります。Citrix®は、レジストリエディターの誤った使用によって生じる問題が解決されることを保証できません。レジストリエディターは自己責任で使用してください。編集する前にレジストリを必ずバックアップしてください。
サイトデータベースへのTLSを有効にする方法については、CTX137556を参照してください。

Controller に TLS サーバー証明書をインストールする

HTTPSの場合、XMLサービスはクライアント証明書ではなくサーバー証明書を使用してTLS機能をサポートします。このセクションでは、Delivery ControllerにTLS証明書を取得してインストールする方法について説明します。同じ手順をCloud Connectorに適用して、STAおよびXMLトラフィックを暗号化できます。
証明機関にはさまざまな種類があり、そこから証明書を要求する方法もさまざまですが、この記事では Microsoft 証明機関について説明します。Microsoft 証明機関には、サーバー認証の目的で公開された証明書テンプレートが必要です。
Microsoft 証明機関が Active Directory ドメインまたは Delivery Controller が参加している信頼されたフォレストに統合されている場合、証明書 MMC スナップインの証明書登録ウィザードから証明書を取得できます。

証明書の要求とインストール

  1. Delivery Controller™ で、MMC コンソールを開き、証明書スナップインを追加します。プロンプトが表示されたら、 を選択します。
  2. 個人 > 証明書を展開し、すべてのタスク > 新しい証明書の要求コンテキストメニューコマンドを使用します。
    MMC 証明書スナップイン
  3. 開始するには次へをクリックし、Active Directory登録から証明書を取得することを確認するには次へをクリックします。
  4. サーバー認証証明書のテンプレートを選択します。テンプレートがSubjectの値を自動的に提供するように設定されている場合は、詳細を指定せずに登録をクリックできます。
    証明書要求ダイアログ
  5. 証明書テンプレートの詳細を指定するには、詳細の矢印ボタンをクリックして、以下を構成します。
    サブジェクト名: 共通名を選択し、Delivery Controller の FQDN を追加します。
    代替名: DNSを選択し、Delivery ControllerのFQDNを追加します。
    証明書のプロパティ

SSL/TLSリスナーポートの構成

Web StudioおよびDirectorの一部としてインストールされるIIS Windowsコンポーネントが同じサーバーにインストールされている場合、IISを使用してTLSを構成できます。詳細については、「Web StudioおよびDirectorでTLSを有効にする」を参照してください。それ以外の場合、PowerShellを使用して証明書を構成するには、次の手順を実行します。
  1. 既存の証明書がバインドされているか確認するには、コマンドプロンプトを開き、netsh http show sslcertを実行します。
    netsh http show sslcert
  2. 既存のバインドがある場合は、それを削除します。
    netsh http delete sslcert ipport=0.0.0.0:443
    既存のバインドで指定されていた場合は、0.0.0.0:443を特定のIPアドレスとポートに置き換えます。
  3. 以前にインストールした証明書のサムプリントを見つけます。サムプリントを表示するには、コンピューター証明書の管理を開き、証明書を参照して開き、詳細タブに移動します。
    サムプリントを示す証明書のプロパティのスクリーンショット(/en-us/citrix-virtual-apps-desktops/2411/media/certificate-thumbprint.png)
    または、PowerShellを使用することもできます。たとえば、次のスクリプトは、共通名がサーバーのホスト名と一致する証明書を検索し、サムネイルを出力します。
    $HostName = ([System.Net.Dns]::GetHostByName(($env:computerName))).Hostname
    $Thumbprint = (Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -match ("CN=" + $HostName)}).Thumbprint -join ';'
    Write-Host -Object "Certificate Thumbprint for $($HostName): $($Thumbprint)" -Foreground Yellow
    証明書の共通名がホスト名と一致しない場合、これは失敗します。ホスト名に対して複数の証明書がある場合、これは連結された複数のサムプリントを返し、適切なサムプリントを選択する必要があります。
    次の例は、フレンドリ名で証明書を検索します。
    $friendlyName = "My certificate name"
    $Thumbprint = (Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.FriendlyName -eq $friendlyNam}).Thumbprint -join ';'
    Write-Host -Object "Certificate Thumbprint for $friendlyName: $($Thumbprint)" -Foreground Yellow
    指定されたフレンドリ名を持つ複数の証明書がある場合、これは連結された複数のサムプリントを返し、適切なサムプリントを選択する必要があります。
  4. 証明書をポートにバインドするには、netsh http add sslcertコマンドを使用します。
    netsh http add sslcert ipport=[IP address]:443 certhash=[certificate hash] appid=[application GUID] disablelegacytls=enable
    • ipport: IPアドレスとポート。0.0.0.0:443を使用すると、すべてのIPアドレスに適用されます。代わりに特定のIPアドレスを指定することもできます。
    • certhash: 前の手順で特定した証明書のサムプリント。
    • appid: シトリックス ブローカー サービスの GUID。
      注:
      証明書を更新または再バインドする際は、任意の GUID ではなく、Broker Service に関連付けられている特定の appid を使用してください。
      Citrix Broker Service の正しい appid を見つけるには:
      1. 管理者として PowerShell コマンドウィンドウを開き、次のコマンドを実行します:
        Get-WmiObject -Class Win32_Product | Select-String -Pattern "broker"
      2. 出力でCitrix Broker ServiceのIdentifyingNumber (GUID) を見つけます (例: {D333C884-187F-447C-8C67-463F33989C8F})。このGUIDをappidパラメーターに使用します。
    • disablelegacytls=enable: レガシーバージョンの TLS を無効にします。このパラメーターは Windows 2022 以降で利用可能です。Windows 2022 では TLS 1.0 および 1.1 を無効にします。Windows 2025 では、TLS 1.0 および 1.1 はデフォルトで無効になっているため、これは不要です。
    たとえば、すべてのIPアドレスで、サムプリントbc96f958848639fd101a793b87915d5f2829b0b6の証明書をポート443にバインドするには、次のコマンドを実行します。
    netsh http add sslcert ipport=0.0.0.0:443 certhash=bc96f958848639fd101a793b87915d5f2829b0b6 appid={91fe7386-e0c2-471b-a252-1e0a805febac} disablelegacytls=enable
HTTPS が有効になったら、StoreFront の展開 および Netscaler Gateway を構成して、HTTP の代わりに HTTPS を使用してデリバリーコントローラーに接続するようにする必要があります。
注:
Controller が Windows Server 2016 にインストールされ、StoreFront が Windows Server 2012 R2 にインストールされている場合、TLS 暗号スイートの順序を変更するために、Controller で構成変更が必要です。この構成変更は、他の Windows Server バージョンの組み合わせの Controller と StoreFront では必要ありません。
暗号スイートの順序リストには、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 または TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 の暗号スイート (あるいはその両方) を含める必要があります。また、これらの暗号スイートは、TLS_DHE_ の暗号スイートよりも前に配置する必要があります。
  1. Microsoft グループポリシーエディターを使用して、コンピューターの構成 > 管理用テンプレート > ネットワーク > SSL 構成設定 に移動します。
  2. 「SSL 暗号スイートの順序」ポリシーを編集します。デフォルトでは、このポリシーは「未構成」に設定されています。このポリシーを「有効」に設定します。
  3. スイートを正しい順序に並べます。使用しない暗号スイートは削除します。
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384またはTLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256が、TLS_DHE_の暗号スイートの前に来るようにしてください。
Microsoft MSDNで、Schannel 暗号スイートの優先順位付けも参照してください。

HTTPまたはHTTPSポートを変更する

デフォルトでは、Controller上のXML Serviceは、HTTPトラフィックにはポート80を、HTTPSトラフィックにはポート443をリッスンします。デフォルト以外のポートを使用することもできますが、Controllerを信頼できないネットワークに公開することによるセキュリティリスクに注意してください。デフォルトを変更するよりも、スタンドアロンのStoreFrontサーバーを展開する方が望ましいです。
Controllerで使用されるデフォルトのHTTPまたはHTTPSポートを変更するには、Studioから次のコマンドを実行します。
BrokerService.exe -WIPORT \<http-port> -WISSLPORT \<https-port>
ここで、<http-port>はHTTPトラフィックのポート番号、<https-port>はHTTPSトラフィックのポート番号です。
注:
ポートを変更した後、Studioでライセンスの互換性とアップグレードに関するメッセージが表示されることがあります。この問題を解決するには、次のPowerShellコマンドレットシーケンスを使用してサービスインスタンスを再登録します。
Get-ConfigRegisteredServiceInstance -ServiceType Broker -Binding XML_HTTPS |
Unregister-ConfigRegisteredServiceInstance
Get-BrokerServiceInstance | where Binding -eq "XML_HTTPS" |
Register-ConfigServiceInstance

HTTPSトラフィックのみを強制する

XML ServiceでHTTPトラフィックを無視させる場合は、Controller上のHKLM\Software\Citrix\DesktopServer\に次のレジストリ設定を作成し、Broker Serviceを再起動します。
HTTPトラフィックを無視するには、DWORD XmlServicesEnableNonSslを作成し、0に設定します。
HTTPSトラフィックを無視するために作成できる対応するレジストリDWORD値があります:DWORD XmlServicesEnableSsl。これが0に設定されていないことを確認してください。

VDA上のTLS設定

デリバリーグループには、TLSが構成されているVDAとTLSが構成されていないVDAを混在させることはできません。デリバリーグループにTLSを構成する前に、そのデリバリーグループ内のすべてのVDAにTLSが構成されていることを確認してください。
VDAでTLSを構成すると、インストールされているTLS証明書の権限が変更され、ICA®サービスに証明書の秘密キーへの読み取りアクセス権が付与され、ICAサービスに次の情報が通知されます。
  • TLSに使用する証明書ストア内の証明書。
  • TLS接続に使用するTCPポート番号。
    Windows ファイアウォール(有効な場合)は、この TCP ポートでの受信接続を許可するように構成する必要があります。この構成は、PowerShell スクリプトを使用すると自動的に行われます。
  • 許可するTLSプロトコルのバージョン。
    重要:
    Citrixでは、SSLv3の使用状況を確認し、必要に応じてSSLv3のサポートを削除するように展開を再構成することをお勧めします。CTX200238を参照してください。
    サポートされているTLSプロトコルバージョンには階層があります(低い順から高い順):SSL 3.0、TLS 1.0、TLS 1.1、TLS 1.2、TLS 1.3。許可される最小バージョンを指定すると、そのバージョン以上を使用するすべてのプロトコル接続が許可されます。
    たとえば、TLS 1.1 を最小バージョンとして指定した場合、TLS 1.1 および TLS 1.3 プロトコル接続が許可されます。SSL 3.0 を最小バージョンとして指定した場合、サポートされているすべてのバージョンの接続が許可されます。TLS 1.3 を最小バージョンとして指定した場合、TLS 1.3 接続のみが許可されます。
    DTLS 1.0はTLS 1.1に、DTLS 1.3はTLS 1.3に対応します。
  • 許可するTLS暗号スイート。
    暗号スイートは、接続に使用される暗号化を選択します。クライアントとVDAは、異なる暗号スイートのセットをサポートできます。クライアント(Citrix WorkspaceアプリまたはStoreFront)が接続し、サポートされているTLS暗号スイートのリストを送信すると、VDAはクライアントの暗号スイートの1つを、自身の構成済み暗号スイートのリストにある暗号スイートの1つと照合し、接続を受け入れます。一致する暗号スイートがない場合、VDAは接続を拒否します。
    VDAは、3つの暗号スイートセット(コンプライアンスモードとも呼ばれます)をサポートしています:GOV(政府)、COM(商用)、およびALL。許容される暗号スイートは、Windows FIPSモードにも依存します。Windows FIPSモードについては、<http://support.microsoft.com/kb/811833>を参照してください。次の表に、各セットの暗号スイートを示します。
TLS/DTLS暗号スイート すべて COM GOV すべて COM GOV
FIPSモード オフ オフ オフ オン オン オン
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384* X X X X
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 X X X X
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA X X X X
* Windows Server 2012 R2ではサポートされていません。
注:
VDAはDHE暗号スイート(例:TLS_DHE_RSA_WITH_AES_256_GCM_SHA384、TLS_DHE_RSA_WITH_AES_256_CBC_SHA、TLS_DHE_RSA_WITH_AES_128_GCM_SHA256、TLS_DHE_RSA_WITH_AES_128_CBC_SHA)をサポートしていません。Windowsによって選択された場合でも、Receiverでは使用されない可能性があります。
Citrix Gatewayを使用している場合は、バックエンド通信の暗号スイートサポートに関する情報について、Citrix ADCのドキュメントを参照してください。TLS暗号スイートのサポートについては、Citrix ADCアプライアンスで利用可能な暗号を参照してください。DTLS暗号スイートのサポートについては、DTLS暗号のサポートを参照してください。

証明書のリクエストとインストール

  1. VDAで、MMCコンソールを開き、証明書スナップインを追加します。プロンプトが表示されたら、コンピューターアカウントを選択します。
  2. 個人 > 証明書を展開し、コンテキストメニューコマンドすべてのタスク > 新しい証明書のリクエストを使用します。
  3. 次へをクリックして開始し、次へをクリックして、Active Directory登録から証明書を取得することを確認します。
  4. サーバー認証証明書のテンプレートを選択します。デフォルトのWindows コンピューターまたはWebサーバーエクスポート可能のいずれも使用できます。テンプレートが件名の値を自動的に提供するように設定されている場合は、詳細を指定せずに登録をクリックできます。
    証明書のリクエストダイアログ
  5. 証明書テンプレートの詳細を指定するには、詳細をクリックして以下を構成します。
    サブジェクト名 — タイプ共通名を選択し、VDAのFQDNを追加します
    代替名 — タイプDNSを選択し、VDAのFQDNを追加します
    証明書のプロパティ(/en-us/citrix-virtual-apps-desktops/2311/media/tls-certificate-properties.png)
    注:
    Active Directory証明書サービス証明書の自動登録を使用して、VDAへの証明書の発行と展開を自動化します。これについては<https://support.citrix.com/article/CTX205473>で説明されています。
    ワイルドカード証明書を使用して、単一の証明書で複数のVDAを保護できます。
    サブジェクト名 — タイプ 共通名 を選択し、VDA の *.primary.domain を入力します。
    代替名 — タイプ DNS を選択し、VDA の *.primary.domain を追加します。
    ワイルドカード証明書要求ダイアログ(/en-us/citrix-virtual-apps-desktops/2311/media/tls-request-certificates-wildcard.png)
    SAN 証明書を使用して、単一の証明書で複数の特定の VDA を保護できます。
    サブジェクト名 — タイプ 共通名 を選択し、証明書の使用状況を識別するのに役立つ文字列を入力します。
    代替名 — タイプ DNS を選択し、各 VDA の FQDN のエントリを追加します。最適な TLS ネゴシエーションを確保するために、代替名の数を最小限に抑えてください。
    「証明書要求」ダイアログ(/en-us/citrix-virtual-apps-desktops/2311/media/tls-request-certificates-san.png)
    注:
    ワイルドカード証明書とSAN証明書の両方で、秘密キーのタブで秘密キーをエクスポート可能にするが選択されている必要があります。
    「証明書要求」ダイアログ(/en-us/citrix-virtual-apps-desktops/2311/media/tls-certificate-properties-private-key.png)

PowerShellスクリプトを使用してVDAでTLSを構成する

TLS証明書を証明書ストアのローカルコンピューター > 個人 > 証明書の領域にインストールします。その場所に複数の証明書がある場合は、証明書のサムプリントをPowerShellスクリプトに提供します。
注:
XenAppおよびXenDesktop 7.16 LTSR以降、PowerShellスクリプトはVDAのFQDNに基づいて正しい証明書を見つけます。VDAのFQDNに対して単一の証明書のみが存在する場合、サムプリントを提供する必要はありません。
Enable-VdaSSL.ps1スクリプトは、VDA上のTLSリスナーを有効または無効にします。このスクリプトは、インストールメディアのSupport > Tools > SslSupportフォルダーにあります。
TLSを有効にすると、DHE暗号スイートは無効になります。ECDHE暗号スイートは影響を受けません。
TLSを有効にすると、スクリプトは指定されたTCPポートの既存のWindowsファイアウォール規則をすべて無効にします。次に、ICAサービスがTLS TCPポートとUDPポートでのみ受信接続を受け入れることを許可する新しい規則を追加します。また、次のWindowsファイアウォール規則も無効にします。
  • Citrix ICA(デフォルト:1494)
  • Citrix CGP(デフォルト:2598)
  • Citrix WebSocket(デフォルト:8008)
その結果、ユーザーはTLSまたはDTLSを使用してのみ接続できるようになります。TLSまたはDTLSなしでは、ICA/HDX、セッションの信頼性を備えたICA/HDX、またはWebSocket経由のHDXを使用できません。
注:
DTLSは、UDPリアルタイムトランスポート経由のICA/HDXオーディオ、またはICA/HDX Framehawkではサポートされていません。
「ネットワークポート」を参照してください。
スクリプトには、以下の構文の説明と追加の例が含まれています。Notepad++などのツールを使用して、この情報を確認できます。
重要:
EnableまたはDisableパラメーターと、CertificateThumbPrintパラメーターのいずれかを指定します。その他のパラメーターはオプションです。

構文

Enable-VdaSSL {-Enable | -Disable} -CertificateThumbPrint "<thumbprint>" [-SSLPort <port>] [-SSLMinVersion "<min-ssl-version>"] [-SSLCipherSuite"\<suite>"]
パラメーター 説明
有効 VDAにTLSリスナーをインストールして有効にします。このパラメーターまたはDisableパラメーターのいずれかが必要です。
無効 VDA上のTLSリスナーを無効にします。このパラメーターまたはEnableパラメーターのいずれかが必要です。このパラメーターを指定した場合、他のパラメーターは無効になります。
証明書サムプリント "<thumbprint>" 引用符で囲まれた、証明書ストア内のTLS証明書のサムプリント。スクリプトは指定されたサムプリントを使用して、使用する証明書を選択します。このパラメーターを省略すると、誤った証明書が選択されます。
SSLポート <port> TLSポート。デフォルト: 443
SSL最小バージョン "<version>" 引用符で囲まれた最小TLSプロトコルバージョン。有効な値: “TLS_1.0”(デフォルト)、“TLS_1.1”、および“TLS_1.3”。
SSL暗号スイート "<suite>" TLS暗号スイート。引用符で囲みます。有効な値: "GOV"、"COM"、および "ALL" (デフォルト)。

例

次のスクリプトは、TLS プロトコルバージョン値をインストールして有効にします。サムプリント(この例では「12345678987654321」として表されています)は、使用する証明書を選択するために使用されます。
Enable-VdaSSL -Enable -CertificateThumbPrint "12345678987654321"
以下のスクリプトは、TLSリスナーをインストールして有効にし、TLSポート400、GOV暗号スイート、および最小TLS 1.2プロトコル値を指定します。サムプリント(この例では「12345678987654321」として表されています)は、使用する証明書を選択するために使用されます。
Enable-VdaSSL -Enable
-CertificateThumbPrint "12345678987654321"
-SSLPort 400 -SSLMinVersion "TLS_1.3"
-SSLCipherSuite "All"
次のスクリプトは、VDA上のTLSリスナーを無効にします。
Enable-VdaSSL -Disable

VDAでTLSを手動で構成する

VDAでTLSを手動で構成する場合、各VDA上の適切なサービス(WindowsシングルセッションOS用VDAの場合はNT SERVICE\PorticaService、WindowsマルチセッションOS用VDAの場合はNT SERVICE\TermService)のTLS証明書の秘密キーに一般的な読み取りアクセス権を付与します。VDAがインストールされているマシンで、次の手順を実行します。
ステップ1。Microsoft管理コンソール(MMC)を起動します: > > 。
ステップ2。MMCに証明書スナップインを追加します。
  1. > を選択します。
  2. を選択し、 をクリックします。
  3. 「このスナップインは常に次の証明書を管理します:」というプロンプトが表示されたら、「コンピューターアカウント」を選択し、 をクリックします。
  4. 「このスナップインで管理するコンピューターを選択してください」というプロンプトが表示されたら、「ローカルコンピューター」を選択し、 をクリックします。
ステップ3。 > > の下で、証明書を右クリックし、 > を選択します。
ステップ4。アクセス制御リストエディターに「(FriendlyName) の秘密キーのアクセス許可」が表示されます。(FriendlyName) はTLS証明書の名前です。以下のいずれかのサービスを追加し、読み取りアクセス権を付与します。
  • WindowsシングルセッションOS用VDAの場合、「PORTICASERVICE」
  • Windows Multi-session OS 用 VDA の場合、「TERMSERVICE」
ステップ5。インストールされているTLS証明書をダブルクリックします。証明書ダイアログで、 タブを選択し、一番下までスクロールします。 をクリックします。
ステップ 6. regedit を実行し、HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd に移動します。
  1. SSL Thumbprint キーを編集し、TLS 証明書のサムプリントの値をこのバイナリ値にコピーします。バイナリ値の編集ダイアログボックスの不明な項目(「0000」や特殊文字など)は無視しても問題ありません。
  2. SSLEnabled キーを編集し、DWORD 値を 1 に変更します。(後で SSL を無効にするには、DWORD 値を 0 に変更します。)
  3. デフォルト設定を変更する場合(オプション)は、同じレジストリパスで以下を使用します。
    SSLPort DWORD – SSL ポート番号。デフォルト: 443。
    SSLMinVersion DWORD – 1 = SSL 3.0、2 = TLS 1.0、3 = TLS 1.1、4 = TLS 1.3。デフォルト: 2 (TLS 1.0)。
    SSLCipherSuite DWORD – 1 = GOV、2 = COM、3 = ALL。デフォルト: 3 (ALL)。
ステップ 7. TLS の TCP および UDP ポートがデフォルトの 443 ではない場合、Windows ファイアウォールで開いていることを確認します。(Windows ファイアウォールで受信規則を作成する際は、そのプロパティで「接続を許可する」と「有効」が選択されていることを確認してください。)
ステップ 8. 他のアプリケーションやサービス(IIS など)が TLS TCP ポートを使用していないことを確認します。
ステップ 9. Windows Multi-session OS 用 VDA の場合、変更を有効にするためにマシンを再起動します。(Windows Single-session OS 用 VDA を含むマシンを再起動する必要はありません。)
重要:
VDA が Windows Server 2012 R2、Windows Server 2016、または Windows 10 Anniversary Edition 以降のサポート対象リリース上にある場合、追加の手順が必要です。これは、Citrix Receiver for Windows (バージョン 4.6 から 4.9)、Citrix Workspace app for HTML5、および Citrix Workspace app for Chrome からの接続に影響します。これには、Citrix Gateway を使用する接続も含まれます。
Citrix Gateway と VDA 間の TLS が構成されている場合、すべての VDA バージョンにおいて、Citrix Gateway を使用するすべての接続でこの手順も必要です。これは、すべての Citrix Receiver™ バージョンに影響します。
VDA (Windows Server 2012 R2、Windows Server 2016、または Windows 10 Anniversary Edition 以降) で、グループポリシーエディターを使用して、Computer Configuration > Policies > Administrative Templates > Network > SSL Configuration Settings > SSL Cipher Suite Order に移動します。次の順序を選択します。
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384_P384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256
注:
最初の6つの項目では、楕円曲線(P384またはP256)も指定されています。「curve25519」が選択されていないことを確認してください。FIPSモードは「curve25519」の使用を妨げません。
このグループポリシー設定が構成されている場合、VDAは、グループポリシーリストと選択されたコンプライアンスモード(COM、GOV、またはALL)のリストの両方に表示される場合にのみ、暗号スイートを選択します。暗号スイートは、クライアント(Citrix WorkspaceアプリまたはStoreFront)によって送信されるリストにも表示されている必要があります。
このグループポリシー構成は、VDA上の他のTLSアプリケーションおよびサービスにも影響します。アプリケーションが特定の暗号スイートを必要とする場合、それらをこのグループポリシーリストに追加する必要がある場合があります。
重要:
グループポリシーの変更は適用時に表示されますが、TLS構成のグループポリシーの変更は、オペレーティングシステムの再起動後にのみ有効になります。したがって、プールされたデスクトップの場合、TLS構成のグループポリシーの変更をベースイメージに適用してください。

デリバリーグループでのTLSの構成

TLS接続用に構成したVDAを含む各デリバリーグループについて、この手順を完了してください。
  1. StudioからPowerShellコンソールを開きます。
  2. Citrix製品のコマンドレットを読み込むには、**asnp Citrix.***を実行します。
  3. Get-BrokerAccessPolicyRule -DesktopGroupName '\<delivery-group-name>' \| Set-BrokerAccessPolicyRule -HdxSslEnabled $trueを実行します。
  4. Set-BrokerSite -DnsResolutionEnabled $trueを実行します。

トラブルシューティング

接続エラーが発生した場合は、VDAのシステムイベントログを確認してください。
Windows向けCitrix Workspaceアプリを使用しているときに、TLSエラーを示す接続エラーが表示された場合は、Desktop Viewerを無効にしてから、もう一度接続を試してください。接続は引き続き失敗しますが、基になるTLS問題の説明が提供される場合があります。(たとえば、証明機関から証明書を要求する際に誤ったテンプレートを指定したなど。)
HDX™ Adaptive Transportを使用するほとんどの構成は、Citrix Workspaceアプリ、Citrix Gateway、およびVDAの最新バージョンを使用するものを含め、DTLSで正常に動作します。Citrix WorkspaceアプリとCitrix Gatewayの間、およびCitrix GatewayとVDAの間でDTLSを使用する一部の構成では、追加の操作が必要です。
次の場合、追加の操作が必要です。
  • Citrix ReceiverのバージョンがHDX Adaptive TransportとDTLSをサポートしている場合:Receiver for Windows (4.7, 4.8, 4.9)、Receiver for Mac (12.5, 12.6, 12.7)、Receiver for iOS (7.2, 7.3.x)、またはReceiver for Linux (13.7)
かつ、以下のいずれかが当てはまる場合:
  • Citrix GatewayのバージョンはVDAへのDTLSをサポートしているが、VDAのバージョンはDTLSをサポートしていない(バージョン7.15以前)。
  • VDAのバージョンがDTLSをサポートしているが(バージョン7.16以降)、Citrix GatewayのバージョンがVDAへのDTLSをサポートしていない場合。
Citrix Receiverからの接続が失敗するのを避けるには、以下のいずれかを実行してください。
  • Citrix Receiverを、Receiver for Windowsバージョン4.10以降、Receiver for Mac 12.8以降、またはReceiver for iOSバージョン7.5以降に更新する。
  • Citrix Gatewayを、VDAへのDTLSをサポートするバージョンに更新する。
  • VDAをバージョン7.16以降に更新する。
  • VDAでDTLSを無効にする。
  • HDX Adaptive Transportを無効にする。
注:
Receiver for Linuxの適切なアップデートはまだ利用できません。Receiver for Android (バージョン3.12.3) は、Citrix Gateway経由のHDX Adaptive TransportおよびDTLSをサポートしていないため、影響を受けません。
VDAでDTLSを無効にするには、VDAファイアウォール設定を変更してUDPポート443を無効にします。(/ja-jp/tech-zone/build/tech-papers/citrix-communication-ports.html#citrix-virtual-apps-and-desktops)を参照してください。

ControllerとVDA間の通信

Windows Communication Framework (WCF) メッセージレベル保護は、Controller と VDA 間の通信を保護します。TLS を使用した追加のトランスポートレベル保護は必要ありません。WCF 構成では、Controller と VDA 間の相互認証に Kerberos を使用します。暗号化には、256 ビットキーの CBC モードで AES を使用します。メッセージの整合性には SHA-1 を使用します。
Microsoftによると、WCFで使用されるセキュリティ プロトコル は、WS-SecurityPolicy 1.2を含むOASIS(Organization for the Advancement of Structured Information Standards)の標準に準拠しています。さらに、Microsoftは、WCFが Security Policy 1.2 に記載されているすべてのアルゴリズムスイートをサポートしていると述べています。
Controller と VDA 間の通信には、上記で述べたアルゴリズムを持つ basic256 アルゴリズムスイートが使用されます。

TLS と HTML5 ビデオリダイレクト、およびブラウザコンテンツリダイレクト

HTML5 ビデオリダイレクトとブラウザコンテンツリダイレクトを使用して、HTTPS Web サイトをリダイレクトできます。これらの Web サイトに挿入された JavaScript は、VDA で実行されている Citrix HDX HTML5 ビデオリダイレクトサービスへの TLS 接続を確立する必要があります。これを実現するために、HTML5 ビデオリダイレクトサービスは、VDA の証明書ストアに 2 つのカスタム証明書を生成します。サービスを停止すると、証明書は削除されます。
HTML5 ビデオリダイレクトポリシーは、デフォルトで無効になっています。
ブラウザコンテンツリダイレクトは、デフォルトで有効になっています。
HTML5 ビデオリダイレクトの詳細については、「マルチメディアポリシー設定」を参照してください。