ユニバーサル プリント サーバーで TLS を有効にする

Virtual Delivery Agent (VDA) と Universal Print Server 間の TCPベースの接続には、トランスポート層セキュリティ (TLS) プロトコルがサポートされています。

警告:

Windows レジストリでの作業を含むタスクの場合、レジストリを誤って編集すると、オペレーティングシステムの再インストールが必要になるような深刻な問題が発生する可能性があります。Citrix® は、レジストリエディターの誤った使用によって生じる問題が解決されることを保証できません。レジストリエディターは自己責任で使用してください。編集する前に必ずレジストリをバックアップしてください。

VDA とユニバーサル プリント サーバー間の印刷接続の種類

クリアテキスト接続

印刷に関連する以下の接続は VDA から発信され、Universal Print Server 上のポートに接続します。これらの接続は、SSL enabled ポリシー設定が Disabled (デフォルト) に設定されている場合にのみ行われます。

  • クリアテキスト印刷 Web サービス接続 (TCP ポート 8080)
  • クリアテキスト印刷データストリーム (CGP) 接続 (TCP ポート 7229)

Microsoft のサポート記事 Windows のサービス概要とネットワークポート要件では、Microsoft Windows Print Spooler サービスで使用されるポートについて説明しています。このドキュメントの SSL/TLS 設定は、Windows Print Spooler サービスによって行われる NetBIOS および RPC 接続には適用されません。VDA は、Universal Print Server enable ポリシー設定が Enabled with fallback to Windows’ native remote printing に設定されている場合、Windows ネットワークプリントプロバイダー (win32spl.dll) をフォールバックとして使用します。

ユニバーサルプリントサーバーのセキュリティ

暗号化された接続

印刷に関連するこれらの SSL/TLS 接続は VDA から発信され、Universal Print Server 上のポートに接続します。これらの接続は、SSL enabled ポリシー設定が Enabled に設定されている場合にのみ行われます。

  • 暗号化された印刷 Web サービス接続 (TCP ポート 8443)
  • 暗号化された印刷データストリーム (CGP) 接続 (TCP ポート 443)

ユニバーサルプリントサーバーのセキュリティ2(/ja-jp/citrix-virtual-apps-desktops/2411/media/universal-print-server-secure-2.png)

SSL/TLSクライアント構成

VDAはSSL/TLSクライアントとして機能します。

暗号化された印刷Webサービス接続(TCPポート8443)のために、Microsoft Group Policyとレジストリを使用してMicrosoft SCHANNEL SSPを構成します。Microsoftサポート記事「TLSレジストリ設定」には、Microsoft SCHANNEL SSPのレジストリ設定が記載されています。

VDAでGroup Policy Editorを使用し、[コンピューターの構成] > [管理用テンプレート] > [ネットワーク] > [SSL構成設定] > [SSL暗号スイートの順序] に移動します。TLS 1.3が設定されている場合は、次の順序を選択します。

TLS_AES_256_GCM_SHA384 TLS_AES_128_GCM_SHA256

TLS 1.2が設定されている場合は、次の順序を選択します。

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

注:

このGroup Policy設定が構成されている場合、VDAは、暗号化された印刷Webサービス接続(デフォルトポート:8443)に対して、接続が両方のSSL暗号スイートリストに表示されている場合にのみ、暗号スイートを選択します。

  • Group Policy SSL暗号スイート順序リスト
  • 選択されたSSL Cipher Suiteポリシー設定(COM、GOV、またはALL)に対応するリスト

このGroup Policy構成は、VDA上の他のTLSアプリケーションおよびサービスにも影響します。アプリケーションが特定の暗号スイートを必要とする場合、それらをこのGroup Policy Cipher Suite Orderリストに追加する必要があるかもしれません。

重要:

TLS構成のGroup Policy変更は、オペレーティングシステムの再起動後にのみ有効になります。

Citrixポリシーを使用して、暗号化された印刷データストリーム(CGP)接続(TCPポート443)のSSL/TLS設定を構成します。

SSL/TLSサーバーの構成

ユニバーサルプリントサーバーはSSL/TLSサーバーとして機能します。

Enable-UpsSsl.ps1 PowerShellスクリプトを使用して、SSL/TLS設定を構成します。

ユニバーサルプリントサーバーにTLS証明書をインストールする

HTTPSの場合、VDAによって信頼されているSSLサーバー証明書をUniversal Print Serverにインストールする必要があります。Microsoft Active Directory証明書サービスまたは別の認証局を使用して、Universal Print Serverの証明書を要求します。

Microsoft Active Directory証明書サービスを使用して証明書を登録/要求する際は、以下の考慮事項に留意してください。

  1. 証明書をローカルコンピューターの個人証明書ストアに配置します。
  2. 証明書のサブジェクト識別名(Subject DN)の共通名属性を、Universal Print Serverの完全修飾ドメイン名(FQDN)に設定します。これは証明書テンプレートで指定します。
  3. 証明書要求と秘密キーの生成に使用される暗号化サービスプロバイダー(CSP)をMicrosoft Enhanced RSA and AES Cryptographic Provider (Encryption)に設定します。これは証明書テンプレートで指定します。
  4. キーサイズを2048ビット以上に設定します。これは証明書テンプレートで指定します。

証明書の作成とインストールについて詳しくは、「証明書の管理」を参照してください。

ユニバーサルプリントサーバーでのSSLの構成

Universal Print Server上のXTEサービスは、受信接続をリッスンします。SSLが有効な場合、SSLサーバーとして機能します。受信接続には、印刷コマンドを含む印刷Webサービス接続と、印刷ジョブを含む印刷データストリーム接続の2種類があります。これらの接続でSSLを有効にできます。SSLはこれらの接続の機密性と整合性を保護します。デフォルトでは、SSLは無効になっています。

SSLの構成に使用されるPowerShellスクリプトは、インストールメディアにあり、ファイル名は次のとおりです: \Support\Tools\SslSupport\Enable-UpsSsl.ps1.

ユニバーサルプリントサーバーでのリスニングポート番号の構成

これらはXTEサービスの既定のポートです。

  • クリアテキスト印刷Webサービス (HTTP) TCPポート: 8080
  • クリアテキスト印刷データストリーム (CGP) TCPポート: 7229
  • 暗号化された印刷Webサービス (HTTPS) TCPポート: 8443
  • 暗号化された印刷データストリーム (CGP) TCPポート: 443

ユニバーサルプリントサーバーでXTEサービスが使用するポートを変更するには、管理者としてPowerShellで次のコマンドを実行します(Enable-UpsSsl.ps1 PowerShellスクリプトの使用法に関する注記については、後続のセクションを参照してください)。

  1. Stop-Service CitrixXTEServer, UpSvc
  2. Enable-UpsSsl.ps1 -Enable -HTTPSPort <port> -CGPSSLPort <port> または Enable-UpsSsl.ps1 -Disable -HTTPPort <port> -CGPPort <port>
  3. Start-Service CitrixXTEServer

ユニバーサルプリントサーバーでのTLS設定

負荷分散構成で複数のユニバーサルプリントサーバーを使用している場合は、すべてのユニバーサルプリントサーバーでTLS設定が一貫して構成されていることを確認してください。

ユニバーサルプリントサーバーでTLSを構成すると、インストールされているTLS証明書の権限が変更され、ユニバーサル印刷サービスに証明書の秘密キーへの読み取りアクセスが付与され、ユニバーサル印刷サービスに次の情報が通知されます。

  • 証明書ストア内のどの証明書をTLSに使用するか。
  • TLS接続にどのTCPポート番号を使用するか。

Windows ファイアウォール(有効な場合)は、これらのTCPポートで受信接続を許可するように構成する必要があります。この構成は、Enable-UpsSsl.ps1 PowerShellスクリプトを使用すると自動的に行われます。

  • どのTLSプロトコルバージョンを許可するか。

Universal Print Serverは、TLSプロトコルバージョン1.3および1.2をサポートしています。許可される最小バージョンを指定します。

デフォルトのTLSプロトコルバージョンは1.2です。

注:

Citrix Virtual Apps and Desktopsバージョン2311以降、TLS 1.1および1.0はサポートされなくなりました。

  • どのTLS暗号スイートを許可するか。

暗号スイートは、接続に使用される暗号化アルゴリズムを選択します。VDAとUniversal Print Serverは、異なる暗号スイートのセットをサポートできます。VDAが接続し、サポートされているTLS暗号スイートのリストを送信すると、Universal Print Serverはクライアントの暗号スイートの1つを、自身の構成済み暗号スイートのリストにある暗号スイートの1つと照合し、接続を受け入れます。一致する暗号スイートがない場合、Universal Print Serverは接続を拒否します。

Universal Print Serverは、OPEN、FIPS、およびSP800-52ネイティブCrypto Kitモードに対して、GOV(ernment)、COM(mercial)、およびALLという名前の以下の暗号スイートセットをサポートしています。許容される暗号スイートは、SSL FIPS Modeポリシー設定とWindows FIPSモードにも依存します。Windows FIPSモードの詳細については、このMicrosoftサポート記事を参照してください。

暗号スイート(優先順位の降順) オープン ALL オープン COM オープン GOV エフアイピーエス すべて フィップス コム FIPS 政府版 SP800-52 すべて SP800-52 商用 SP800-52 政府
TLS_ECDHE_RSA_ AES256_GCM_SHA384 X   X X   X X   X
TLS_ECDHE_RSA_ AES256_CBC_SHA384 X   X X   X X   X
TLS_ECDHE_RSA_ AES256_CBC_SHA X X   X X   X X  

PowerShellスクリプトを使用してユニバーサルプリントサーバーでTLSを構成する

証明書ストアのローカルコンピューター > 個人 > 証明書領域にTLS証明書をインストールします。その場所に複数の証明書がある場合は、Enable-UpsSsl.ps1 PowerShellスクリプトに証明書のサムプリントを指定します。

注:

PowerShellスクリプトは、Universal Print ServerのFQDNに基づいて正しい証明書を見つけます。Universal Print ServerのFQDNに対して単一の証明書のみが存在する場合、証明書のサムプリントを指定する必要はありません。

Enable-UpsSsl.ps1 スクリプトは、VDAからUniversal Print ServerへのTLS接続を有効または無効にします。このスクリプトは、インストールメディアのSupport > Tools > SslSupportフォルダーにあります。

TLSを有効にすると、スクリプトはUniversal Print ServerのTCPポートに対する既存のWindowsファイアウォールルールをすべて無効にします。その後、XTEサービスがTLS TCPおよびUDPポートでのみ受信接続を受け入れることを許可する新しいルールを追加します。また、以下のWindowsファイアウォールルールも無効にします。

  • クリアテキスト印刷Webサービス接続 (デフォルト: 8080)
  • クリアテキスト印刷データストリーム (CGP) 接続 (デフォルト: 7229)

その結果、VDAはTLSを使用している場合にのみこれらの接続を行うことができます。

注:

TLSを有効にしても、VDAからユニバーサルプリントサーバーへのWindowsプリントスプーラーRPC/SMB接続には影響しません。

重要:

最初のパラメーターとしてEnableまたはDisableのいずれかを指定します。ローカルコンピューターの個人証明書ストアにUniversal Print ServerのFQDNを持つ証明書が1つしかない場合、CertificateThumbprintパラメーターはオプションです。その他のパラメーターはオプションです。

構文

Enable-UpsSSL.ps1 -Enable [-HTTPPort <port>] [-CGPPort <port>] [–HTTPSPort <port>] [-CGPSSLPort <port>] [-SSLMinVersion <version>] [-SSLCipherSuite <name>] [-CertificateThumbprint <thumbprint>] [-FIPSMode <Boolean>] [-ComplianceMode <mode>]
Enable-UpsSSL.ps1 -Disable [-HTTPPort <portnum>] [-CGPPort <portnum>]
パラメーター 説明文
有効にする XTEサーバーでSSL/TLSを有効にします。このパラメーターまたはDisableパラメーターのいずれかが必要です。
無効にする XTEサーバーでSSL/TLSを無効にします。このパラメーターまたはEnableパラメーターのいずれかが必要です。
証明書サムプリント "<thumbprint>" ローカルコンピューターの個人証明書ストアにあるTLS証明書のサムプリント。引用符で囲みます。スクリプトは、指定されたサムプリントを使用して、使用する証明書を選択します。
HTTPポート番号 <port> クリアテキスト印刷Webサービス (HTTP/SOAP) ポート。デフォルト: 8080
CGPポート番号 <port> クリアテキスト印刷データストリーム (CGP) ポート。デフォルト: 7229
HTTPSポート番号 <port> 暗号化された印刷Webサービス (HTTPS/SOAP) ポート。デフォルト: 8443
シージーピーエスエスエルポート <port> 暗号化された印刷データストリーム (CGP) ポート。デフォルト: 443
SSL最小バージョン "<version>" TLSプロトコルの最小バージョン。引用符で囲みます。有効な値: 「TLS_1.2」および「TLS_1.3」。デフォルト: TLS_1.2。
SSL暗号スイート "<name>" TLS暗号スイートパッケージの名前。引用符で囲みます。有効な値: 「GOV」、「COM」、および「ALL」(デフォルト)。
FIPSモード設定 <Boolean> XTE ServerでFIPS 140モードを有効または無効にします。有効な値: FIPS 140モードを有効にする場合は$true、FIPS 140モードを無効にする場合は$false。

使用例

次のスクリプトはTLSを有効にします。サムプリント(この例では「12345678987654321」として表されています)は、使用する証明書を選択するために使用されます。

Enable-UpsSsl.ps1 –Enable -CertificateThumbprint "12345678987654321"

次のスクリプトはTLSを無効にします。

Enable-UpsSsl.ps1 –Disable

FIPSモードの構成

米国連邦情報処理標準(FIPS)モードを有効にすると、Universal Print Serverの暗号化された接続にはFIPS 140準拠の暗号化のみが使用されるようになります。

クライアントでFIPSモードを構成する前に、サーバーでFIPSモードを構成してください。

Windows FIPSモードの有効化/無効化については、Microsoftのドキュメントサイトを参照してください。

クライアントでのFIPSモードの有効化

Delivery Controller™上でWeb Studioを起動してください。そして、UPS FIPS ModeというCitrixのポリシー設定有効にしてください。これにより、Citrixのポリシーが有効になります。

各VDAで以下を実行します。

  1. Windows FIPSモードを有効にします。
  2. VDAを再起動します。

サーバーでFIPSモードを有効にする

各ユニバーサルプリントサーバーで、次の操作を行います。

  1. Windows FIPSモードを有効にします。
  2. 管理者として次のPowerShellコマンドを実行します: stop-service CitrixXTEServer, UpSvc
  3. -Enable -FIPSMode $trueパラメーターを指定して、Enable-UpsSsl.ps1スクリプトを実行します。
  4. ユニバーサルプリントサーバーを再起動します。

クライアントでFIPSモードを無効にする

Web Studioで、Citrixポリシー設定のUPS FIPS ModeDisabledに設定します。Citrixポリシーを有効にします。UPS FIPS Mode Citrixポリシー設定を削除することもできます。

各VDAで、次の操作を行います。

  1. Windows FIPSモードを無効にします。
  2. VDAを再起動します。

サーバーでFIPSモードを無効にする

各ユニバーサルプリントサーバーで、次の操作を行います。

  1. Windows FIPSモードを無効にします。
  2. 管理者として次のPowerShellコマンドを実行します: stop-service CitrixXTEServer, UpSvc
  3. Enable-UpsSsl.ps1スクリプトを-Enable -FIPSMode $falseパラメーターで実行します。
  4. ユニバーサルプリントサーバーを再起動します。

注:

SSLプロトコルバージョンがTLS 1.3に設定されている場合、FIPSモードはサポートされません。

SSL/TLSプロトコルバージョンの構成

デフォルトのSSL/TLSプロトコルバージョンはTLS 1.2です。TLS 1.2とTLS 1.3は、本番環境での使用が推奨されるSSL/TLSプロトコルバージョンです。トラブルシューティングのために、非本番環境でSSL/TLSプロトコルバージョンを一時的に変更する必要がある場合があります。

SSL 2.0およびSSL 3.0は、ユニバーサルプリントサーバーではサポートされていません。

サーバーでのSSL/TLSプロトコルバージョンの設定

各ユニバーサルプリントサーバーで以下を実行します。

  1. 管理者としてこのPowerShellコマンドを実行します: stop-service CitrixXTEServer, UpSvc
  2. Enable-UpsSsl.ps1スクリプトを-Enable -SSLMinVersionバージョンパラメーターで実行します。テストが完了したら、これをTLS 1.2またはTLS 1.3に戻すことを忘れないでください。
  3. ユニバーサルプリントサーバーを再起動します。

クライアントでのSSL/TLSプロトコルバージョンの設定

Studioで、SSLプロトコルバージョンポリシー設定を目的のプロトコルバージョンに設定し、ポリシーを有効にします。

VDAのオペレーティングシステムが、選択されたTLSバージョンをサポートしていることを確認してください。WindowsでサポートされているTLSバージョンについては、[Microsoft Learn - TLSプロトコルバージョンのサポート}(https://learn.microsoft.com/ja-jp/windows-server/security/tls/tls-registry-settings?tabs=diffie-hellman#tls-dtls-and-ssl-protocol-version-settings)を参照してください。デフォルトを上書きするようにレジストリを構成するには、Microsoft Learn - TLS、DTLS、およびSSLプロトコルバージョンの設定を参照してください。

トラブルシューティング

接続エラーが発生した場合は、ユニバーサルプリントサーバー上の C:\Program Files (x86)\Citrix\XTE\logs\error.log ファイルをご確認ください。

SSL/TLSハンドシェイクが失敗した場合、このログファイルにエラーメッセージ SSL handshake from client failed が表示されます。このような失敗は、VDAとUniversal Print ServerのSSL/TLSプロトコルバージョンが一致しない場合に発生する可能性があります。

ユニバーサルプリントサーバーのホスト名を含む以下のポリシー設定で、ユニバーサルプリントサーバーのFQDNを使用してください。

  • セッションプリンター
  • プリンターの割り当て
  • 負荷分散のためのユニバーサルプリントサーバー

Universal Print Server と VDA のシステムクロック(日付、時刻、タイムゾーン)が正しいことを確認してください。

ユニバーサル プリント サーバーで TLS を有効にする