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

最終公開日 : Nov 13, 2026
Citrix Virtual Apps and Desktopsは、コンポーネント間のTCPベースの接続にトランスポート層セキュリティ (TLS) プロトコルをサポートしています。Citrix Virtual Apps and Desktopsは、(/ja-jp/citrix-virtual-apps-desktops/2203-ltsr/technical-overview/hdx/adaptive-transport.html)を使用して、UDPベースのICA/HDX接続にデータグラムトランスポート層セキュリティ (DTLS) プロトコルもサポートしています。
TLSとDTLSは類似しており、同じデジタル証明書をサポートしています。Citrix Virtual AppsまたはCitrix Virtual Desktops™サイトをTLSを使用するように構成すると、DTLSを使用するように構成されます。次の手順を使用してください。記載されている箇所を除き、手順はTLSとDTLSの両方に共通です。
  • すべてのDelivery Controllerにサーバー証明書を取得、インストール、登録し、TLS証明書でポートを構成します。詳細については、(/ja-jp/citrix-virtual-apps-desktops/2203-ltsr/secure/tls.html#install-tls-server-certificates-on-controllers)を参照してください。
    必要に応じて、ControllerがHTTPおよびHTTPSトラフィックをリッスンするために使用するポートを変更できます。
  • Citrix Workspace™アプリとVirtual Delivery Agent (VDA) 間でTLS接続を有効にするには、次のタスクを完了します。
    • VDAがインストールされているマシンでTLSを構成します。(便宜上、VDAがインストールされているマシンは、以降「VDA」と表記します。) 一般情報については、(/ja-jp/citrix-virtual-apps-desktops/2203-ltsr/secure/tls.html#tls-settings-on-vdas)を参照してください。TLS/DTLSの構成には、Citrixが提供するPowerShellスクリプトを使用することを強くお勧めします。詳細については、(/ja-jp/citrix-virtual-apps-desktops/2203-ltsr/secure/tls.html#configure-tls-on-a-vda-using-the-powershell-script)を参照してください。ただし、TLS/DTLSを手動で構成する場合は、(/ja-jp/citrix-virtual-apps-desktops/2203-ltsr/secure/tls.html#manually-configure-tls-on-a-vda)を参照してください。
    • Studioで一連のPowerShellコマンドレットを実行して、VDAを含むデリバリーグループでTLSを構成します。詳細については、(/ja-jp/citrix-virtual-apps-desktops/2203-ltsr/secure/tls.html#configure-tls-on-delivery-groups)を参照してください。
      要件と考慮事項:
      • ユーザーと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 Service はクライアント証明書ではなくサーバー証明書を使用して 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. サーバー認証証明書のテンプレートを選択します。テンプレートがサブジェクトの値を自動的に提供するように設定されている場合は、詳細を指定せずに登録をクリックできます。
    証明書の要求ダイアログ
  5. 証明書テンプレートの詳細を指定するには、詳細の矢印ボタンをクリックして、以下を構成します。
    サブジェクト名: 共通名を選択し、Delivery Controller の FQDN を追加します。
    代替名: DNS を選択し、Delivery Controller の FQDN を追加します。
    証明書のプロパティ

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

Web StudioおよびDirectorの一部としてインストールされているIIS Windowsコンポーネントが同じサーバーにインストールされている場合、IISを使用してTLSを構成できます。詳細については、「Web StudioおよびDirectorでTLSを有効にする」(/ja-jp/citrix-virtual-apps-desktops/2507-ltsr/secure/tls-studio.html)を参照してください。それ以外の場合は、PowerShellを使用して証明書を構成するには:
  1. 既存の証明書がバインドされているかを確認するには、コマンドプロンプトを開き、netsh http show sslcertを実行します。
    netsh http show sslcert
  2. 既存のバインドがある場合は、それを削除します。
    netsh http delete sslcert ipport=0.0.0.0:443
    既存のバインドで特定のIPアドレスとポートが指定されていた場合は、0.0.0.0:443をそのIPアドレスとポートに置き換えます。
  3. 以前にインストールした証明書のサムプリントを見つけます。サムプリントを表示するには、コンピューター証明書の管理を開き、証明書を参照して開き、詳細タブに移動します。
    証明書のプロパティでサムプリントが表示されているスクリーンショット(/en-us/citrix-virtual-apps-desktops/2507-ltsr/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® Service に証明書の秘密キーへの読み取りアクセス権が付与され、ICA Service に次の情報が通知されます。
  • 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.1を指定した場合、TLS 1.1およびTLS 1.2プロトコル接続が許可されます。最小バージョンとしてSSL 3.0を指定した場合、サポートされているすべてのバージョンの接続が許可されます。最小バージョンとしてTLS 1.2を指定した場合、TLS 1.2接続のみが許可されます。
    DTLS 1.0はTLS 1.1に対応し、DTLS 1.2はTLS 1.2に対応します。
  • 許可する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 サーバー (エクスポート可能) の両方を使用できます。テンプレートが Subject の値を自動的に提供するように設定されている場合は、詳細を指定せずに 登録 をクリックできます。
    「証明書要求」ダイアログ(/en-us/citrix-virtual-apps-desktops/2203-ltsr/media/tls-request-certificates.png)
  5. 証明書テンプレートの詳細を指定するには、詳細 をクリックして以下を構成します。
    サブジェクト名 — タイプ 共通名 を選択し、VDA の FQDN を追加します。
    代替名 — タイプ DNS を選択し、VDA の FQDN を追加します。
    証明書のプロパティ(/en-us/citrix-virtual-apps-desktops/2203-ltsr/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/2203-ltsr/media/tls-request-certificates-wildcard.png)
    SAN 証明書を使用して、単一の証明書で複数の特定の VDA を保護できます。
    サブジェクト名 — タイプ 共通名 を選択し、証明書の使用状況を識別するのに役立つ文字列を入力します。
    代替名 — タイプ DNS を選択し、各 VDA の FQDN のエントリを追加します。最適な TLS ネゴシエーションを確保するために、代替名の数を最小限に抑えてください。
    「証明書要求」ダイアログ(/en-us/citrix-virtual-apps-desktops/2203-ltsr/media/tls-request-certificates-san.png)
    注:
    ワイルドカード証明書とSAN証明書の両方で、[秘密キー]タブの**[秘密キーをエクスポート可能にする]**が選択されている必要があります。
    「証明書要求」ダイアログ(/en-us/citrix-virtual-apps-desktops/2203-ltsr/media/tls-certificate-properties-private-key.png)

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

証明書ストアの[ローカルコンピューター]>[個人]>[証明書]領域にTLS証明書をインストールします。その場所に複数の証明書がある場合は、証明書のサムプリントをPowerShellスクリプトに指定します。
注:
XenAppおよびXenDesktop 7.16 LTSR以降、PowerShellスクリプトはVDAのFQDNに基づいて正しい証明書を検索します。VDAのFQDNに対して証明書が1つしかない場合は、サムプリントを指定する必要はありません。
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ではサポートされていません。
「ネットワークポート」を参照してください。(/ja-jp/tech-zone/build/tech-papers/citrix-communication-ports.html#citrix-virtual-apps-and-desktops).
スクリプトには以下の構文説明と追加の例が含まれています。この情報は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.2」。
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.2"
-SSLCipherSuite "All"
次のスクリプトは、VDA上のTLSリスナーを無効にします。
Enable-VdaSSL -Disable

VDAでTLSを手動で構成する

VDAでTLSを手動で構成する場合、各VDA上の適切なサービスに対して、TLS証明書の秘密キーへの一般的な読み取りアクセスを許可します。WindowsシングルセッションOS用VDAの場合はNT SERVICE\PorticaService、またはWindowsマルチセッションOS用VDAの場合はNT SERVICE\TermServiceです。VDAがインストールされているマシンで:
手順 1. Microsoft管理コンソール (MMC) を起動します。 > > mmc.exe。
手順 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.2。デフォルト: 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 以降)で、グループポリシーエディターを使用して、 > > > > > に移動します。次の順序を選択します。
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の間でDTLSを使用し、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 ビデオリダイレクトの詳細については、「マルチメディアポリシー設定」を参照してください。