ユニバーサルプリントサーバーでのトランスポート層セキュリティ (TLS)
Virtual Delivery Agent (VDA) とユニバーサルプリントサーバー間のTCPベースの接続では、トランスポート層セキュリティ (TLS) プロトコルがサポートされています。
警告:
Windowsレジストリでの作業を含むタスクの場合—レジストリを誤って編集すると、オペレーティングシステムの再インストールが必要になる深刻な問題が発生する可能性があります。Citrix®は、レジストリエディターの誤った使用によって発生した問題が解決されることを保証できません。レジストリエディターは自己責任で使用してください。編集する前に必ずレジストリをバックアップしてください。
VDAとユニバーサルプリントサーバー間の印刷接続の種類
クリアテキスト接続
印刷に関連する以下の接続は、VDAから発信され、ユニバーサルプリントサーバーのポートに接続します。これらの接続は、SSL enabled ポリシー設定が Disabled (デフォルト) に設定されている場合にのみ行われます。
-
クリアテキスト印刷Webサービス接続 (TCPポート 8080)
-
クリアテキスト印刷データストリーム (CGP) 接続 (TCPポート 7229)
Microsoft サポート技術情報「Windows のサービス概要とネットワークポート要件」には、Microsoft Windows Print Spooler サービスが使用するポートについて記載されています。このドキュメントの SSL/TLS 設定は、Windows Print Spooler サービスによって行われる NETBIOS および RPC 接続には適用されません。「Universal Print Server の有効化」ポリシー設定が「Windows のネイティブなリモート印刷へのフォールバックを有効にする」に設定されている場合、VDA は Windows ネットワーク印刷プロバイダー (win32spl.dll) をフォールバックとして使用します。
暗号化された接続
印刷に関連するこれらのSSL/TLS接続は、VDAから発信され、ユニバーサルプリントサーバーのポートに接続します。これらの接続は、SSL enabled ポリシー設定が Enabled に設定されている場合にのみ行われます。
-
暗号化された印刷Webサービス接続 (TCPポート 8443)
-
暗号化された印刷データストリーム (CGP) 接続 (TCPポート 443)
SSL/TLS クライアント構成
VDA は SSL/TLS クライアントとして機能します。
Microsoft Group Policy とレジストリを使用して、暗号化された印刷 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 サーバー構成
Universal Print Server は SSL/TLS サーバーとして機能します。
Enable-UpsSsl.ps1 PowerShellスクリプトを使用して、SSL/TLS設定を構成します。
Universal Print ServerにTLSサーバー証明書をインストールする
HTTPS の場合、Universal Print Server はサーバー証明書を使用して TLS 機能をサポートします。クライアント証明書は使用されません。Microsoft Active Directory 証明書サービスまたは別の証明機関を使用して、Universal Print Server の証明書を要求します。
マイクロソフト アクティブ ディレクトリ証明書サービスを使用して証明書を登録/要求する際は、以下の考慮事項に留意してください。
-
証明書をローカルコンピューターの個人証明書ストアに配置します。
-
証明書のサブジェクト識別名(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 サービスのデフォルトポートです。
-
クリアテキスト印刷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 (政府機関向け)、COM (商用)、ALL と名付けられた次の暗号スイートのセットをサポートしています。許容される暗号スイートは、「SSL FIPS モード」ポリシー設定と 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に対して単一の証明書のみが存在する場合、証明書のサムプリントを指定する必要はありません。
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パラメーターのいずれかが必要です。 |
CertificateThumbprint "<thumbprint>" |
ローカルコンピューターの個人証明書ストアにあるTLS証明書のサムプリント。引用符で囲みます。スクリプトは、指定されたサムプリントを使用して、使用する証明書を選択します。 |
HTTPポート <port> |
クリアテキスト印刷Webサービス (HTTP/SOAP) ポート。デフォルト: 8080 |
CGPポート <port> |
クリアテキスト印刷データストリーム (CGP) ポート。デフォルト: 7229 |
HTTPSポート <port> |
暗号化された印刷Webサービス (HTTPS/SOAP) ポート。デフォルト: 8443 |
CGP SSL ポート <port> |
暗号化された印刷データストリーム (CGP) ポート。デフォルト: 443 |
SSLMinVersion "<version>" |
最小 TLS プロトコルバージョン。引用符で囲みます。有効な値: 「TLS_1.0」、「TLS_1.1」、「TLS_1.2」。デフォルト: TLS_1.2。 |
SSLCipherSuite “<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 を実行し、Citrix ポリシー設定の SSL FIPS モード を 有効 に設定します。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モードの無効化
Delivery Controller で Citrix Studio を実行し、Citrix ポリシー設定の SSL FIPS モード を 無効 に設定します。Citrix ポリシーを有効にします。SSL FIPS モード の Citrix ポリシー設定を削除することもできます。
各VDAで以下を実行します:
-
Windows FIPSモードを無効にします。
-
VDAを再起動します。
サーバーでのFIPSモードの無効化
各Universal Print Serverで以下を実行します:
-
Windows FIPSモードを無効にします。
-
管理者としてこのPowerShellコマンドを実行します:
stop-service CitrixXTEServer, UpSvc -
-Enable -FIPSMode $falseパラメーターを指定して、Enable-UpsSsl.ps1スクリプトを実行します。 -
Universal Print Serverを再起動します。
SSL/TLSプロトコルバージョンの構成
デフォルトの SSL/TLS プロトコルバージョンは TLS 1.2 です。TLS 1.2 は、本番環境での使用が推奨される唯一の SSL/TLS プロトコルバージョンです。トラブルシューティングのために、非本番環境で SSL/TLS プロトコルバージョンを一時的に変更する必要がある場合があります。
SSL 2.0およびSSL 3.0は、Universal Print Serverではサポートされていません。
サーバーでのSSL/TLSプロトコルバージョンの設定
各Universal Print Serverで以下を実行します。
-
管理者としてこのPowerShellコマンドを実行します:
stop-service CitrixXTEServer, UpSvc -
-Enable -SSLMinVersionバージョンパラメーターを指定してEnable-UpsSsl.ps1スクリプトを実行します。テストが完了したら、これを TLS 1.2 に戻すことを忘れないでください。 -
Universal Print Serverを再起動します。
クライアントでのSSL/TLSプロトコルバージョンの設定
各VDAで以下を実行します。
-
Delivery Controllerで、SSLプロトコルバージョンポリシー設定を目的のプロトコルバージョンに設定し、ポリシーを有効にします。
-
Microsoft サポート記事の TLS Registry Settings には、Microsoft SCHANNEL SSP のレジストリ設定が記載されています。レジストリ設定を使用して、クライアント側の TLS 1.0、TLS 1.1、または TLS 1.2 を有効にします。重要:テストが完了したら、レジストリ設定を元の値に戻すことを忘れないでください。
-
VDAを再起動します。
トラブルシューティング
接続エラーが発生した場合は、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でシステムクロック(日付、時刻、タイムゾーン)が正しいことを確認してください。