Universal Print Server で TLS を有効にする
トランスポート層セキュリティ (TLS) プロトコルは、Virtual Delivery Agent (VDA) と Universal Print Server 間の TCP ベースの接続でサポートされています。
警告:
Windows レジストリでの作業を含むタスクの場合、レジストリを誤って編集すると、オペレーティングシステムの再インストールが必要になる深刻な問題が発生する可能性があります。Citrix® は、レジストリエディターの誤った使用によって生じる問題が解決されることを保証できません。レジストリエディターは自己責任で使用してください。編集する前に必ずレジストリをバックアップしてください。
VDA と Universal Print Server 間の印刷接続の種類
クリアテキスト接続
以下の印刷関連の接続は VDA から発信され、Universal Print Server 上のポートに接続します。これらの接続は、SSL enabled ポリシー設定が Disabled (デフォルト) に設定されている場合にのみ行われます。
-
クリアテキスト印刷 Web サービス接続 (TCP ポート 8080)
-
クリアテキスト印刷データストリーム (CGP) 接続 (TCP ポート 7229)
Microsoft のサポート記事 Service overview and network port requirements for Windows には、Microsoft Windows Print Spooler サービスが使用するポートが記載されています。このドキュメントの SSL/TLS 設定は、Windows Print Spooler サービスによって行われる NetBIOS および RPC 接続には適用されません。Universal Print Server enable ポリシー設定が Enabled with fallback to Windows' native remote printing に設定されている場合、VDA は Windows Network Print Provider (win32spl.dll) をフォールバックとして使用します。
暗号化された接続
これらの印刷関連の SSL/TLS 接続は VDA から発信され、Universal Print Server 上のポートに接続します。これらの接続は、SSL enabled ポリシー設定が Enabled に設定されている場合にのみ行われます。
-
暗号化された印刷 Web サービス接続 (TCP ポート 8443)
-
暗号化された印刷データストリーム (CGP) 接続 (TCP ポート 443)
ユニバーサルプリントサーバーのセキュリティ 2(/en-us/citrix-virtual-apps-desktops/2411/media/universal-print-server-secure-2.png)
SSL/TLS クライアント構成
VDA は SSL/TLS クライアントとして機能します。
Microsoftグループポリシーとレジストリを使用して、暗号化された印刷Webサービス接続(TCPポート8443)のためにMicrosoft SCHANNEL SSPを構成します。Microsoftサポート記事TLSレジストリ設定には、Microsoft SCHANNEL SSPのレジストリ設定が記載されています。
VDA上でグループポリシーエディターを使用し、コンピューターの構成 > 管理用テンプレート > ネットワーク > 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
注:
このグループポリシー設定が構成されている場合、VDAは、暗号化された印刷Webサービス接続(デフォルトポート: 8443)に対して、接続が両方のSSL暗号スイートリストに表示されている場合にのみ、暗号スイートを選択します。
-
グループポリシー SSL 暗号スイート順序リスト
-
選択した SSL 暗号スイートポリシー設定 (COM、GOV、または ALL) に対応するリスト
このグループポリシー構成は、VDA上の他のTLSアプリケーションおよびサービスにも影響します。アプリケーションが特定の暗号スイートを必要とする場合は、このグループポリシー暗号スイート順序リストに追加する必要があるかもしれません。
重要:
TLS構成のグループポリシーの変更は、オペレーティングシステムの再起動後にのみ有効になります。
Citrixポリシーを使用して、暗号化された印刷データストリーム (CGP) 接続 (TCPポート443) のSSL/TLS設定を構成します。
SSL/TLSサーバーの構成
Universal Print Server は SSL/TLS サーバーとして機能します。
SSL/TLS設定を構成するには、
Enable-UpsSsl.ps1 PowerShellスクリプトを使用します。
Universal Print ServerにTLS証明書をインストールする
HTTPSの場合、VDAによって信頼されているSSLサーバー証明書をUniversal Print Serverにインストールする必要があります。Microsoft Active Directory証明書サービスまたは別の認証機関を使用して、Universal Print Serverの証明書を要求します。
マイクロソフト Active Directory 証明書サービスを使用して証明書を登録/要求する際は、以下の考慮事項に留意してください。
-
証明書をローカルコンピューターの個人証明書ストアに配置します。
-
証明書のサブジェクト識別名 (Subject DN) の共通名属性を、Universal Print Serverの完全修飾ドメイン名 (FQDN) に設定します。これは証明書テンプレートで指定します。
-
証明書要求と秘密キーの生成に使用される暗号化サービスプロバイダー (CSP) を**Microsoft Enhanced RSA and AES Cryptographic Provider (Encryption)**に設定します。これは証明書テンプレートで指定します。
-
キーサイズを2048ビット以上に設定します。これは証明書テンプレートで指定します。
証明書の作成とインストールについて詳しくは、「証明書の管理」を参照してください。
Universal Print ServerでのSSLの構成
Universal Print Server上のXTEサービスは、受信接続をリッスンします。SSLが有効な場合、SSLサーバーとして機能します。受信接続には、印刷コマンドを含む印刷Webサービス接続と、印刷ジョブを含む印刷データストリーム接続の2種類があります。これらの接続でSSLを有効にできます。SSLはこれらの接続の機密性と整合性を保護します。デフォルトでは、SSLは無効になっています。
SSLの構成に使用されるPowerShellスクリプトは、インストールメディアにあり、ファイル名は次のとおりです:
\Support\Tools\SslSupport\Enable-UpsSsl.ps1..
Universal Print Server でのリスニングポート番号の構成
これらは XTE Service のデフォルトポートです。
-
クリアテキスト印刷 Web サービス (HTTP) TCP ポート: 8080
-
クリアテキスト印刷データストリーム (CGP) TCP ポート: 7229
-
暗号化された印刷 Web サービス (HTTPS) TCP ポート: 8443
-
暗号化された印刷データストリーム (CGP) TCP ポート: 443
Universal Print Server で XTE Service が使用するポートを変更するには、管理者として PowerShell で次のコマンドを実行します (Enable-UpsSsl.ps1 PowerShell スクリプトの使用に関する注意点については、後のセクションを参照してください)。
-
Stop-Service CitrixXTEServer, UpSvc -
Enable-UpsSsl.ps1 -Enable -HTTPSPort <port> -CGPSSLPort <port>またはEnable-UpsSsl.ps1 -Disable -HTTPPort <port> -CGPPort <port> -
Start-Service CitrixXTEServer
ユニバーサル プリント サーバーの TLS 設定
負荷分散構成で複数の Universal Print Server を使用している場合は、すべての Universal Print Server で TLS 設定が一貫して構成されていることを確認してください。
Universal Print Server で TLS を構成すると、インストールされている TLS 証明書のアクセス許可が変更され、Universal Printing Service に証明書の秘密キーへの読み取りアクセス権が付与され、Universal Printing Service に次の情報が通知されます。
-
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 サポート記事 を参照してください。
| 暗号スイート(優先順位の降順) | OPEN ALL | OPEN COM | OPEN GOV | FIPS ALL | FIPS COM | FIPS GOV | SP800-52 ALL | SP800-52 COM | SP800-52 GOV |
|---|---|---|---|---|---|---|---|---|---|
| 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スクリプトを使用してUniversal Print ServerでTLSを構成する
証明書ストアのローカルコンピューター > 個人 > 証明書領域にTLS証明書をインストールします。その場所に複数の証明書がある場合は、証明書のサムプリントを
Enable-UpsSsl.ps1 PowerShellスクリプトに指定します。
注:
PowerShellスクリプトは、Universal Print ServerのFQDNに基づいて正しい証明書を見つけます。Universal Print ServerのFQDNに対して証明書が1つしかない場合は、証明書のサムプリントを指定する必要はありません。
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からUniversal Print ServerへのWindows Print Spooler 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 |
CGP SSLポート <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ポリシー設定をEnabledに設定します。Citrixポリシーを有効にします。
各VDAで以下を実行します。
-
Windows FIPSモードを有効にします。
-
VDAを再起動します。
サーバーでのFIPSモードの有効化
各Universal Print Serverでこれを実行します。
-
Windows FIPSモードを有効にします。
-
管理者として次のPowerShellコマンドを実行します:
stop-service CitrixXTEServer, UpSvc -
-Enable -FIPSMode $trueパラメーターを指定してEnable-UpsSsl.ps1スクリプトを実行します。 -
Universal Print Serverを再起動します。
クライアントでのFIPSモードの無効化
Web Studioで、Citrixポリシー設定のUPS FIPS ModeをDisabledに設定します。Citrixポリシーを有効にします。UPS FIPS Mode Citrixポリシー設定を削除することもできます。
各VDAでこれを実行します。
-
Windows FIPSモードを無効にします。
-
VDAを再起動します。
サーバーでのFIPSモードの無効化
各Universal Print Serverでこれを実行します。
-
Windows FIPSモードを無効にします。
-
管理者として次のPowerShellコマンドを実行します:
stop-service CitrixXTEServer, UpSvc -
Enable-UpsSsl.ps1スクリプトを-Enable -FIPSMode $falseパラメーターで実行します。 -
Universal Print Serverを再起動します。
注:
SSLプロトコルバージョンがTLS 1.3に設定されている場合、FIPSモードはサポートされません。
SSL/TLSプロトコルバージョンの構成
デフォルトのSSL/TLSプロトコルバージョンはTLS 1.2です。TLS 1.2とTLS 1.3は、本番環境での使用が推奨されるSSL/TLSプロトコルバージョンです。トラブルシューティングのために、非本番環境でSSL/TLSプロトコルバージョンを一時的に変更する必要がある場合があります。
Universal Print Serverでは、SSL 2.0およびSSL 3.0はサポートされていません。
サーバーでのSSL/TLSプロトコルバージョンの設定
各Universal Print Serverで以下を実行します。
-
管理者としてこのPowerShellコマンドを実行します:
stop-service CitrixXTEServer, UpSvc -
Enable-UpsSsl.ps1スクリプトを-Enable -SSLMinVersionバージョンパラメーターで実行します。テストが完了したら、これをTLS 1.2またはTLS 1.3に戻すことを忘れないでください。 -
Universal Print Serverを再起動します。
クライアントでのSSL/TLSプロトコルバージョンの設定
Studioで、SSL Protocol Versionポリシー設定を目的のプロトコルバージョンに設定し、ポリシーを有効にします。
VDAのオペレーティングシステムが選択したTLSバージョンをサポートしていることを確認してください。WindowsでサポートされているTLSバージョンについては、[Microsoft Learn - TLS protocol version support}(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, and SSL protocol version settingsを参照してください。
トラブルシューティング
接続エラーが発生した場合は、Universal Print Server の C:\Program Files (x86)\Citrix\XTE\logs\error.log ファイルを確認してください。
SSL/TLSハンドシェイクが失敗した場合、このログファイルにエラーメッセージ SSL handshake from client failed が表示されます。このような失敗は、VDAとUniversal Print ServerのSSL/TLSプロトコルバージョンが一致しない場合に発生する可能性があります。
Universal Print Serverのホスト名を含む以下のポリシー設定で、Universal Print ServerのFQDNを使用してください。
-
セッションプリンター
-
プリンターの割り当て
-
負荷分散のためのUniversal Print Server
Universal Print ServerとVDAのシステムクロック(日付、時刻、タイムゾーン)が正しいことを確認してください。