ユニバーサルプリントサーバーでのトランスポート層セキュリティ (TLS)
トランスポート層セキュリティ (TLS) プロトコルは、Virtual Delivery Agent (VDA) とユニバーサルプリントサーバー間のTCPベースの接続でサポートされています。
警告:
Windowsレジストリでの作業を含むタスクの場合、レジストリを誤って編集すると、オペレーティングシステムの再インストールが必要になるような深刻な問題が発生する可能性があります。Citrix®は、レジストリエディターの誤った使用によって生じる問題が解決できることを保証できません。レジストリエディターは自己責任で使用してください。編集する前に必ずレジストリをバックアップしてください。
VDAとユニバーサルプリントサーバー間の印刷接続の種類
クリアテキスト接続
印刷に関連する以下の接続は、VDAから発信され、ユニバーサルプリントサーバー上のポートに接続します。これらの接続は、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接続には適用されません。VDAは、ユニバーサルプリントサーバー有効化 ポリシー設定が Windowsのネイティブリモート印刷へのフォールバックを有効にする に設定されている場合、フォールバックとしてWindows Network Print Provider (win32spl.dll) を使用します。
ユニバーサルプリントサーバーのセキュリティ (/ja-jp/citrix-virtual-apps-desktops/2203-ltsr/media/universal-print-server-secure-1.png)
暗号化された接続
印刷に関連するこれらのSSL/TLS接続は、VDAから発信され、ユニバーサルプリントサーバー上のポートに接続します。これらの接続は、SSL enabled ポリシー設定が Enabled に設定されている場合にのみ行われます。
- 暗号化された印刷Webサービス接続 (TCPポート 8443)
- 暗号化された印刷データストリーム (CGP) 接続 (TCPポート 443)
ユニバーサルプリントサーバー セキュア 2(/ja-jp/citrix-virtual-apps-desktops/2203-ltsr/media/universal-print-server-secure-2.png)
SSL/TLSクライアントの構成
VDAはSSL/TLSクライアントとして機能します。
Microsoftグループポリシーとレジストリを使用して、暗号化された印刷Webサービス接続(TCPポート8443)用にMicrosoft SCHANNEL SSPを構成します。Microsoftサポート記事「TLS Registry Settings」には、Microsoft SCHANNEL SSPのレジストリ設定が記載されています。
VDA(Windows Server 2016またはWindows 10)でグループポリシーエディターを使用し、コンピューターの構成 > 管理用テンプレート > ネットワーク > 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
注:
このグループポリシー設定が構成されている場合、VDAは、暗号化された印刷Webサービス接続(デフォルトポート:8443)に対して、接続が両方のSSL暗号スイートリストに表示されている場合にのみ暗号スイートを選択します。
- グループポリシーSSL暗号スイート順序リスト
- 選択したSSL暗号スイートポリシー設定(COM、GOV、またはALL)に対応するリスト
このグループポリシー構成は、VDA上の他のTLSアプリケーションおよびサービスにも影響します。アプリケーションが特定の暗号スイートを必要とする場合、このグループポリシー暗号スイート順序リストに追加する必要がある場合があります。
重要:
TLS構成のグループポリシーの変更は、オペレーティングシステムの再起動後にのみ有効になります。
Citrixポリシーを使用して、暗号化された印刷データストリーム(CGP)接続(TCPポート443)のSSL/TLS設定を構成します。
SSL/TLSサーバーの構成
ユニバーサルプリントサーバーはSSL/TLSサーバーとして機能します。
SSL/TLS 設定を構成するには、Enable-UpsSsl.ps1 PowerShell スクリプトを使用します。
ユニバーサルプリントサーバーにTLSサーバー証明書をインストールする
HTTPS の場合、Universal Print Server はサーバー証明書を使用して TLS 機能をサポートします。クライアント証明書は使用されません。Microsoft Active Directory 証明書サービスまたは別の認証局を使用して、Universal Print Server の証明書を要求します。
Microsoft Active Directory 証明書サービスを使用して証明書を登録/要求する際は、以下の考慮事項に留意してください。
- 証明書をローカルコンピューターの 個人 証明書ストアに配置します。
- 証明書のサブジェクト識別名 (Subject DN) の 共通名 属性を、Universal Print Server の完全修飾ドメイン名 (FQDN) に設定します。これは証明書テンプレートで指定します。
- 証明書要求と秘密鍵の生成に使用される暗号化サービスプロバイダー (CSP) を Microsoft Enhanced RSA and AES Cryptographic Provider (Encryption) に設定します。これは証明書テンプレートで指定します。
- キーサイズを 2048 ビット以上に設定します。これは証明書テンプレートで指定します。
ユニバーサルプリントサーバーでのSSLの構成
Universal Print Server の XTE サービスは、受信接続をリッスンします。SSL が有効な場合、SSL サーバーとして機能します。受信接続には、印刷コマンドを含む印刷 Web サービス接続と、印刷ジョブを含む印刷データストリーム接続の 2 種類があります。これらの接続で SSL を有効にできます。SSL はこれらの接続の機密性と整合性を保護します。デフォルトでは、SSL は無効になっています。
SSL を構成するために使用される PowerShell スクリプトは、インストールメディアにあり、ファイル名は \Support\Tools\SslSupport\Enable-UpsSsl.ps1. です。
Universal Print Server でのリスニングポート番号の構成
これらは XTE サービスのデフォルトポートです。
- クリアテキスト印刷 Web サービス (HTTP) TCP ポート: 8080
- クリアテキスト印刷データストリーム (CGP) TCPポート: 7229
- 暗号化された印刷Webサービス (HTTPS) TCPポート: 8443
- 暗号化された印刷データストリーム (CGP) TCPポート: 443
Universal Print ServerでXTEサービスが使用するポートを変更するには、管理者として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.2、1.1、1.0をサポートしています。許可される最小バージョンを指定してください。
デフォルトのTLSプロトコルバージョンは1.2です。
- 許可する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サポート記事を参照してください。
| 暗号スイート(優先順位の降順) | オープンすべて | オープン商用 | オープン政府機関 | FIPSすべて | FIPS COM | 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 |
パワーシェルスクリプトを使用してユニバーサルプリントサーバーでTLSを構成する
証明書ストアのローカルコンピューター > 個人 > 証明書領域にTLS証明書をインストールします。その場所に複数の証明書がある場合は、Enable-UpsSsl.ps1 PowerShellスクリプトに証明書のサムプリントを指定します。
注:
PowerShellスクリプトは、Universal Print ServerのFQDNに基づいて正しい証明書を検索します。Universal Print ServerのFQDNに対して単一の証明書のみが存在する場合、証明書のサムプリントを指定する必要はありません。
Enable-UpsSsl.ps1 スクリプトは、VDAからUniversal Print ServerへのTLS接続を有効または無効にします。このスクリプトは、インストールメディアのサポート > ツール > 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 |
シージーピーポート <port>
|
クリアテキスト印刷データストリーム (CGP) ポート。デフォルト: 7229 |
エイチティーティーピーエスポート <port>
|
暗号化された印刷Webサービス (HTTPS/SOAP) ポート。デフォルト: 8443 |
CGPSSLPort <port>
|
暗号化された印刷データストリーム (CGP) ポート。デフォルト: 443 |
SSL最小バージョン "<version>"
|
引用符で囲まれた最小TLSプロトコルバージョン。有効な値: “TLS_1.0”, “TLS_1.1”, および “TLS_1.2”。デフォルト: TLS_1.2。 |
SSL暗号スイート “<name>”
|
引用符で囲まれたTLS暗号スイートパッケージの名前。有効な値: “GOV”, “COM”, および “ALL” (デフォルト)。 |
FIPSモード設定 <Boolean>
|
XTEサーバーで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™上でCitrix Studioアプリケーションを起動し、SSL FIPS Mode Citrixポリシー設定を有効に設定します。その後、Citrixポリシーを有効にします。
各VDAで以下を実行します。
- Windows FIPSモードを有効にします。
- VDAを再起動します。
サーバーでのFIPSモードの有効化
各ユニバーサルプリントサーバーで、次の操作を行います。
- Windows FIPSモードを有効にします。
- 管理者としてこのPowerShellコマンドを実行します:
stop-service CitrixXTEServer, UpSvc -
Enable-UpsSsl.ps1スクリプトを-Enable -FIPSMode $trueパラメーターで実行します。 - ユニバーサルプリントサーバーを再起動します。
クライアントでの FIPS モードの無効化
デリバリーコントローラーでCitrix Studioを実行し、SSL FIPS Mode Citrix ポリシー設定をDisabledに設定します。Citrix ポリシーを有効にします。SSL FIPS Mode Citrix ポリシー設定を削除することもできます。
各 VDA で以下を実行します。
- Windows FIPS モードを無効にします。
- VDA を再起動します。
サーバーでの FIPS モードの無効化
各ユニバーサルプリントサーバーで、以下を実行します。
- Windows FIPS モードを無効にします。
- 管理者としてこの PowerShell コマンドを実行します:
stop-service CitrixXTEServer, UpSvc -
-Enable -FIPSMode $falseパラメーターを指定してEnable-UpsSsl.ps1スクリプトを実行します。 - ユニバーサルプリントサーバーを再起動します。
SSL/TLS プロトコルバージョンの構成
デフォルトの SSL/TLS プロトコルバージョンは TLS 1.2 です。TLS 1.2 は、本番環境での使用が推奨される唯一の SSL/TLS プロトコルバージョンです。トラブルシューティングのために、非本番環境で一時的に SSL/TLS プロトコルバージョンを変更する必要がある場合があります。
ユニバーサルプリントサーバーでは、SSL 2.0 および SSL 3.0 はサポートされていません。
サーバーでのSSL/TLSプロトコルバージョンの設定
各ユニバーサルプリントサーバーで、以下を実行します。
- 管理者としてこのPowerShellコマンドを実行します:
stop-service CitrixXTEServer, UpSvc -
-Enable -SSLMinVersionバージョンパラメーターを指定してEnable-UpsSsl.ps1スクリプトを実行します。テストが完了したら、これをTLS 1.2に戻すことを忘れないでください。 - ユニバーサルプリントサーバーを再起動します。
クライアントでのSSL/TLSプロトコルバージョンの設定
各VDAで以下を実行します。
-
Delivery Controllerで、SSL Protocol Versionポリシー設定を目的のプロトコルバージョンに設定し、ポリシーを有効にします。
-
Microsoftサポート記事「TLS Registry Settings」には、Microsoft SCHANNEL SSPのレジストリ設定が記載されています。レジストリ設定を使用して、クライアント側のTLS 1.0、TLS 1.1、またはTLS 1.2を有効にします。
重要:
テストが完了したら、レジストリ設定を元の値に戻すことを忘れないでください。
-
VDAを再起動します。
トラブルシューティング
接続エラーが発生した場合は、ユニバーサルプリントサーバー上のC:\Program Files (x86)\Citrix\XTE\logs\error.logログファイルを確認してください。
SSL/TLSハンドシェイクが失敗した場合、このログファイルにエラーメッセージ「SSL handshake from client failed」が表示されます。このような失敗は、VDAとUniversal Print ServerのSSL/TLSプロトコルバージョンが一致しない場合に発生する可能性があります。
ユニバーサルプリントサーバーのホスト名を含む以下のポリシー設定で、ユニバーサルプリントサーバーのFQDNを使用します。
- セッションプリンター
- プリンターの割り当て
- ロードバランシング用のユニバーサルプリントサーバー
ユニバーサルプリントサーバーとVDAで、システムクロック(日付、時刻、タイムゾーン)が正しいことを確認してください。