Delivery Controller で TLS を有効にする

最終公開日 : Nov 13, 2026
デフォルトでは、HTTP と HTTPS の両方が有効になっています。HTTPS は、サーバーの FQDN を共通名として使用する自己署名証明書を使用しますが、これは StoreFront™ や Web ブラウザでは信頼されません。
delivery controller™ で TLS を有効にするには、次の操作を行う必要があります。

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

TLS を使用するには、共通名またはサブジェクトの別名がサーバーの FQDN と一致する証明書をインストールする必要があります。delivery controller の前にロードバランサーを使用している場合は、サーバーとロードバランサーの両方の FQDN をサブジェクトの別名として含めます。詳細については、「証明書」を参照してください。StoreFront が delivery controller に接続するには、RSA デジタル署名アルゴリズムを使用する必要があります。StoreFront は ECDSA アルゴリズムを使用する証明書をサポートしていません。

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/2511/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を使用するようにします。

HTTPS 用のモニターサービス OData API を構成する

モニターサービスは、Citrix® およびサードパーティアプリケーションがデータを照会できるように、OData v3 および v4 API を提供します。Director は OData API V3 を使用して監視サービスに接続します。HTTPS 用のモニター OData API を構成するには、次の手順を実行します。
  1. 次のPowerShellを実行します。
    $serviceGroup = Get-ConfigRegisteredServiceInstance -ServiceType Monitor | Select -First 1 ServiceGroupUid
    Remove-ConfigServiceGroup -ServiceGroupUid $serviceGroup.ServiceGroupUid
    & 'C:\Program Files\Citrix\Monitor\Service\citrix.monitor.exe' -ConfigureFirewall -RequireODataTls –OdataPort 443 -RequireODataSdkTls –OdataSdkPort 443
    get-MonitorServiceInstance | register-ConfigServiceInstance
    Get-ConfigRegisteredServiceInstance -ServiceType Config | Reset-MonitorServiceGroupMembership
  2. テキストエディターでファイル C:\Program Files\Citrix\Monitor\Service\Citrix.Monitor.exe.Config を開きます。要素 <add key="owin:baseAddress" value="http://localhost/citrix/monitor/odata/v4" /> を見つけて、<add key="owin:baseAddress" value="https://localhost/citrix/monitor/odata/v4" /> に変更します。

暗号スイートを構成する

暗号スイートの順序リストには、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 Learn で、TLS 暗号スイートの順序の構成 も参照してください。

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

XML Service を構成して HTTP トラフィックを無視することをお勧めします。
  1. regedit を実行します
  2. HKLM\Software\Citrix\DesktopServer\ を開きます
  3. XmlServicesEnableNonSsl という名前の新しい DWORD 値を作成し、0 に設定します。
  4. ブローカーサービスを再起動します。
HTTPS トラフィックを無視するために作成できる対応するレジストリ DWORD 値 XmlServicesEnableSsl があります。これが 0 に設定されていないことを確認してください。

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

デフォルトでは、Controller 上の XML サービスは、HTTP トラフィックにはポート 80 を、HTTPS トラフィックにはポート 443 をリッスンします。デフォルト以外のポートを使用できますが、Controller を信頼できないネットワークに公開することによるセキュリティリスクに注意してください。デフォルトを変更するよりも、スタンドアロンの StoreFront サーバーを展開する方が望ましいです。
Controller で使用されるデフォルトの HTTP または HTTPS ポートを変更するには、Studio から次のコマンドを実行します:
BrokerService.exe -StoreFrontPort <http-port> -StoreFrontTlsPort <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