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リスナーポートの構成

IIS Windowsコンポーネントが同じサーバーにインストールされている場合(これはWeb StudioおよびDirectorの一部としてインストールされます)、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. 以前にインストールした証明書のサムプリントを見つけます。サムプリントを表示するには、コンピューター証明書の管理を開き、証明書を参照して開き、詳細タブに移動します。
    サムプリントを示す証明書のプロパティのスクリーンショット
    または、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 はデフォルトで無効になっているため、これは不要です。
    たとえば、次のコマンドを実行して、サムプリント bc96f958848639fd101a793b87915d5f2829b0b6 の証明書をすべての IP アドレスのポート 443 にバインドします。
    netsh http add sslcert ipport=0.0.0.0:443 certhash=bc96f958848639fd101a793b87915d5f2829b0b6 appid={91fe7386-e0c2-471b-a252-1e0a805febac} disablelegacytls=enable
HTTPS が有効になったら、StoreFront deployments と 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 Cipher Suite Order」を編集します。デフォルトでは、このポリシーは「未構成」に設定されています。このポリシーを「有効」に設定します。
  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. 新しいDWORD値を作成し、名前をXmlServicesEnableNonSslに設定して、0に設定します。
  4. ブローカーサービスを再起動します。
HTTPSトラフィックを無視するために作成できる対応するレジストリDWORD値XmlServicesEnableSslがあります。それが0に設定されていないことを確認してください。

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

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