Citrix Virtual Apps and Desktops 7 2203 LTSR

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

Citrix Virtual Apps and Desktopsは、コンポーネント間のTCPベースの接続にトランスポート層セキュリティ(TLS)プロトコルをサポートしています。Citrix Virtual Apps and Desktopsは、アダプティブトランスポートを使用して、UDPベースのICA/HDX接続にデータグラムトランスポート層セキュリティ(DTLS)プロトコルもサポートしています。

TLSとDTLSは類似しており、同じデジタル証明書をサポートしています。Citrix Virtual AppsまたはCitrix Virtual Desktops™サイトをTLSを使用するように構成すると、DTLSを使用するように構成されます。以下の手順を使用してください。特に明記されていない限り、手順はTLSとDTLSの両方に共通です。

  • すべてのDelivery Controllerでサーバー証明書を取得、インストール、登録し、TLS証明書でポートを構成します。詳しくは、「ControllerへのTLSサーバー証明書のインストール」を参照してください。

    オプションで、ControllerがHTTPおよびHTTPSトラフィックをリッスンするために使用するポートを変更できます。

  • Citrix Workspace™アプリとバーチャルデリバリーエージェント (VDA) 間のTLS接続を有効にするには、次のタスクを実行します。

    • VDAがインストールされているマシンでTLSを構成します。(便宜上、VDAがインストールされているマシンは「VDA」と表記します。)一般的な情報については、「VDAのTLS設定」を参照してください。Citrixが提供するPowerShellスクリプトを使用してTLS/DTLSを構成することを強くお勧めします。詳しくは、「PowerShellスクリプトを使用したVDAでのTLSの構成」を参照してください。ただし、TLS/DTLSを手動で構成する場合は、「VDAでのTLSの手動構成」を参照してください。
    • Studioで一連のPowerShellコマンドレットを実行して、VDAを含むデリバリーグループでTLSを構成します。詳しくは、「デリバリーグループでの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. サーバー認証証明書のテンプレートを選択します。テンプレートがサブジェクトの値を自動的に提供するように設定されている場合は、詳細を指定せずに登録をクリックできます。

    証明書の要求ダイアログ

  5. 証明書テンプレートの詳細を指定するには、詳細の矢印ボタンをクリックして、以下を構成します。

    サブジェクト名: 共通名を選択し、Delivery ControllerのFQDNを追加します。

    代替名:DNSを選択し、デリバリーコントローラーのFQDNを追加します。

    証明書のプロパティ(/ja-jp/citrix-virtual-apps-desktops/2203-ltsr/media/tls-certificate-properties.png)

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

Web StudioおよびDirectorの一部としてインストールされているIIS Windowsコンポーネントが同じサーバーにインストールされている場合、IISを使用してTLSを構成できます。詳しくは、「Web StudioおよびDirectorでTLSを有効にする」(/ja-jp/citrix-virtual-apps-desktops/2507-ltsr/secure/tls-studio)を参照してください。それ以外の場合、PowerShellを使用して証明書を構成するには:

  1. 既存の証明書がバインドされているかを確認するには、コマンドプロンプトを開いてnetsh http show sslcertを実行します。

    netsh http show sslcert
    <!--NeedCopy-->
    
  2. 既存のバインドがある場合は、それを削除します。

    netsh http delete sslcert ipport=0.0.0.0:443
    <!--NeedCopy-->
    

    既存のバインドで指定されていた場合は、0.0.0.0:443を特定のIPアドレスとポートに置き換えます。

  3. 以前にインストールした証明書のサムプリントを見つけます。サムプリントを表示するには、コンピューター証明書の管理を開き、証明書を参照して開き、詳細タブに移動します。

    サムプリントを示す証明書のプロパティのスクリーンショット(/ja-jp/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
    <!--NeedCopy-->
    

    証明書の共通名がホスト名と一致しない場合、これは失敗します。ホスト名に対して複数の証明書がある場合、これは連結された複数のサムプリントを返し、適切なサムプリントを選択する必要があります。

    次の例は、フレンドリ名で証明書を検索します。

    $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
    <!--NeedCopy-->
    

    指定されたフレンドリ名を持つ証明書が複数ある場合、これは連結された複数のサムプリントを返し、適切なサムプリントを選択する必要があります。

  4. 証明書をポートにバインドするには、netsh http add sslcertコマンドを使用します。

    netsh http add sslcert ipport=[IP address]:443 certhash=[certificate hash] appid=[application GUID] disablelegacytls=enable
    <!--NeedCopy-->
    
    • 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"
         <!--NeedCopy-->
        
      2. 出力で Citrix Broker Service の識別番号 (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 はデフォルトで無効になっているため、これは不要です。

    例えば、次のコマンドを実行して、サムプリント bc96f958848639fd101a793b87915d5f2829b0b6 の証明書をすべての IP アドレスのポート 443 にバインドします。

    netsh http add sslcert ipport=0.0.0.0:443 certhash=bc96f958848639fd101a793b87915d5f2829b0b6 appid={91fe7386-e0c2-471b-a252-1e0a805febac} disablelegacytls=enable
    <!--NeedCopy-->
    

HTTPS が有効になったら、StoreFront 展開 および Netscaler Gateway を構成して、HTTP の代わりに HTTPS を使用してデリバリーコントローラーに接続するようにしてください。

注:

コントローラーが Windows Server 2016 にインストールされ、StoreFront が Windows Server 2012 R2 にインストールされている場合、コントローラーで TLS 暗号スイートの順序を変更するための構成変更が必要です。この構成変更は、他の Windows Server バージョンの組み合わせのコントローラーと 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サービスは、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
<!--NeedCopy-->

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

XMLサービスにHTTPトラフィックを無視させたい場合は、Controller上のHKLM\Software\Citrix\DesktopServer\に次のレジストリ設定を作成し、Brokerサービスを再起動します。

HTTPトラフィックを無視するには、DWORD XmlServicesEnableNonSslを作成し、0に設定します。

HTTPSトラフィックを無視するために作成できる対応するレジストリDWORD値があります:DWORD XmlServicesEnableSslです。これが0に設定されていないことを確認してください。

VDA上でのTLS設定

Delivery Groupには、TLSが構成されているVDAとTLSが構成されていないVDAが混在することはできません。Delivery GroupにTLSを構成する前に、そのDelivery Group内のすべての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ではサポートされていません。

注:

The VDA does not support DHE ciphersuites (for example, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, and TLS_DHE_RSA_WITH_AES_128_CBC_SHA.) If selected by Windows, they may not be used by 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を追加します。

    証明書のプロパティ

    注:

    Active Directory証明書サービス証明書の自動登録を使用して、VDAへの証明書の発行と展開を自動化します。これについてはhttps://support.citrix.com/article/CTX205473で説明されています。

    ワイルドカード証明書を使用して、1つの証明書で複数のVDAを保護できます。

    サブジェクト名 — タイプとして共通名を選択し、VDAの*.primary.domainを入力します

    代替名 — タイプとしてDNSを選択し、VDAの*.primary.domainを追加します

    証明書要求ワイルドカードダイアログ

    SAN証明書を使用すると、1つの証明書で複数の特定のVDAを保護できます。

    サブジェクト名 — タイプとして共通名を選択し、証明書の使用状況を識別するのに役立つ文字列を入力します

    代替名 — タイプとしてDNSを選択し、各VDAのFQDNのエントリを追加します。最適なTLSネゴシエーションを確保するために、代替名の数を最小限に抑えてください。

    証明書要求ダイアログ

    注:

    ワイルドカード証明書とSAN証明書の両方で、秘密キーのタブで秘密キーをエクスポート可能にするを選択する必要があります。

    証明書要求ダイアログ

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 ファイアウォール規則も無効にします。

  • シトリックス ICA (デフォルト: 1494)
  • シトリックス CGP (デフォルト: 2598)
  • シトリックス ウェブソケット (デフォルト: 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パラメーターのいずれかが必要です。このパラメーターを指定した場合、他のパラメーターは無効になります。
証明書のサムプリント “" 証明書ストア内のTLS証明書のサムプリント。引用符で囲みます。スクリプトは、指定されたサムプリントを使用して、使用する証明書を選択します。このパラメーターを省略すると、誤った証明書が選択されます。
SSLPort TLSポート。デフォルト: 443
SSLMinVersion “" 最小TLSプロトコルバージョン。引用符で囲みます。有効な値: 「TLS_1.0」(デフォルト)、「TLS_1.1」、「TLS_1.2」。
SSLCipherSuite “" 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上の適切なサービス(WindowsシングルセッションOS用VDAの場合はNT SERVICE\PorticaService、WindowsマルチセッションOS用VDAの場合はNT SERVICE\TermService)のTLS証明書の秘密キーに汎用読み取りアクセス権を付与します。VDAがインストールされているマシンで:

ステップ1。Microsoft管理コンソール(MMC)を起動します:スタート > ファイル名を指定して実行 > mmc.exe。

ステップ2。証明書スナップインをMMCに追加します:

  1. ファイル > スナップインの追加と削除 を選択します。
  2. 証明書を選択し、「追加」をクリックします。
  3. 「このスナップインは常に次の証明書を管理します:」というプロンプトが表示されたら、「コンピューターアカウント」を選択し、「次へ」をクリックします。
  4. 「このスナップインで管理するコンピューターを選択してください」というプロンプトが表示されたら、「ローカルコンピューター」を選択し、「完了」をクリックします。

ステップ3。証明書 (ローカルコンピューター) > 個人 > 証明書 の下で、証明書を右クリックし、「すべてのタスク」 > 「秘密キーの管理」を選択します。

ステップ4。アクセス制御リストエディターには、「(FriendlyName) の秘密キーのアクセス許可」が表示されます。(FriendlyName) はTLS証明書の名前です。以下のいずれかのサービスを追加し、読み取りアクセス権を付与します:

  • Windowsシングルセッションオペレーティングシステム向けVDAの場合、”PORTICASERVICE”
  • Windowsマルチセッションオペレーティングシステム向けVDAの場合、”TERMSERVICE”

ステップ5。インストールされているTLS証明書をダブルクリックします。証明書のダイアログで、「詳細」タブを選択し、一番下までスクロールします。「サムプリント」をクリックします。

STEP 6. Run regedit and go to 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. Default: 2 (TLS 1.0).

    SSLCipherSuite DWORD – 1 = GOV, 2 = COM, 3 = ALL. Default: 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 以降のサポート対象リリースで動作している場合、追加の手順が必要になります。これは、シトリックス レシーバー for Windows(バージョン 4.6 から 4.9)、Citrix Workspace app for HTML5、および Citrix Workspace app for Chrome からの接続に影響を与えます。シトリックス ゲートウェイ を使用した接続もこれに含まれます。

この手順は、Citrix Gateway と VDA の間で TLS が構成されている場合、すべての VDA バージョンで Citrix Gateway を使用するすべての接続にも必要です。これは、すべての Citrix Receiver™ バージョンに影響します。

VDA(Windows Server 2012 R2、Windows Server 2016、または Windows 10 Anniversary Edition 以降)で、グループポリシーエディターを使用して、コンピューターの構成 > ポリシー > 管理用テンプレート > ネットワーク > SSL構成設定 > SSL暗号スイートの順序 に移動します。次の順序を選択します。

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. Run Get-BrokerAccessPolicyRule -DesktopGroupName ‘<delivery-group-name>’ | Set-BrokerAccessPolicyRule -HdxSslEnabled $true.
  4. Run 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 レシーバーのバージョンがHDX Adaptive TransportおよびDTLSをサポートしていること: Windows版レシーバー (4.7, 4.8, 4.9)、Mac版レシーバー (12.5, 12.6, 12.7)、iOS版レシーバー (7.2, 7.3.x)、またはLinux版レシーバー (13.7)であること

かつ、以下のいずれかが当てはまる場合:

  • Citrix GatewayのバージョンがVDAへのDTLSをサポートしているが、VDAのバージョンがDTLSをサポートしていない場合 (バージョン7.15以前)、

  • VDAのバージョンがDTLSをサポートしているが (バージョン7.16以降)、Citrix GatewayのバージョンがVDAへのDTLSをサポートしていない場合。

Citrix Receiverからの接続の失敗を避けるには、以下のいずれかを実行してください:

  • Citrix レシーバー を、Windows版レシーバー バージョン 4.10 以降、Mac版レシーバー 12.8 以降、または iOS版レシーバー バージョン 7.5 以降に更新する、または、
  • Citrix Gatewayを、VDAへのDTLSをサポートするバージョンに更新する。または、
  • VDAをバージョン7.16以降に更新する。または、
  • VDAでDTLSを無効にする。または、
  • HDXアダプティブトランスポートを無効にする。

注:

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)を参照してください。

コントローラーとVDA間の通信

Windows Communication Framework (WCF) のメッセージレベル保護により、Controller と VDA 間の通信が保護されます。TLS を使用した追加のトランスポートレベル保護は必要ありません。WCF 構成では、Controller と VDA 間の相互認証に Kerberos を使用します。暗号化には、256 ビットキーの CBC モードで AES を使用します。メッセージの整合性には SHA-1 を使用します。

Microsoft によると、WCF で使用されるセキュリティプロトコルは、WS-SecurityPolicy 1.2 を含む OASIS(構造化情報標準促進協会)の標準に準拠しています。さらに、Microsoft は、WCF がSecurity Policy 1.2に記載されているすべてのアルゴリズムスイートをサポートしていると述べています。

Controller と VDA 間の通信には、上記で述べたアルゴリズムを持つ basic256 アルゴリズムスイートを使用します。

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

HTML5 ビデオリダイレクトとブラウザコンテンツリダイレクトを使用して、HTTPS Web サイトをリダイレクトできます。これらの Web サイトに挿入される JavaScript は、VDA で実行されている Citrix HDX HTML5 Video Redirection Service への TLS 接続を確立する必要があります。これを実現するために、HTML5 Video Redirection Service は、VDA の証明書ストアに 2 つのカスタム証明書を生成します。サービスを停止すると、証明書は削除されます。

HTML5 ビデオリダイレクトポリシーは、デフォルトで無効になっています。

ブラウザコンテンツリダイレクトは、デフォルトで有効になっています。

HTML5 ビデオリダイレクトの詳細については、「マルチメディアポリシー設定」を参照してください。

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