証明書の検証
プールで証明書の検証機能が有効になっている場合、管理ネットワーク上のすべてのTLS通信エンドポイントが、証明書を使用して、機密情報を送信する前に、ピアのIDを検証します。
動作
管理ネットワーク上のXenServerホストによって開始された接続では、IDを検証するために接続先のエンドポイントがTLS証明書を提供する必要があります。この要件は、プールの一部である、またはプールとやり取りする以下のアイテムに影響します:
- プール内のホスト
- XenCenter
- APIを使用するサードパーティクライアント
証明書の検証機能は、XenServerによって提供される自己署名証明書と、信頼できる機関が署名した(ユーザーがインストールした)証明書の両方と互換性があります。詳しくは、「Install a TLS certificate on your host」を参照してください。
プール内の各XenServerホストには、それを識別する2つの証明書があります:
-
プール内のID証明書は、プール内のホスト間の通信を保護するために使用されます。プール内の通信では、XenServerは常に自己署名証明書を使用します。
-
サーバーID証明書は、管理ネットワーク上のプールと通信するすべてのクライアントアプリケーションに対するXenServerホストIDを確認するために使用されます。ホストとクライアントアプリケーション間の通信には、自己署名証明書を使用するか、独自のTLS証明書をホストにインストールすることができます。
ホストが最初にプールに参加したとき、またはクライアントが最初にプールに接続したときに、プールはその接続を信頼します。この最初の接続中に、プールと参加ホストまたは接続クライアントの間で証明書が交換されます。管理ネットワーク上のこのホストまたはクライアントによるこの後のすべての通信で、証明書を使用し、通信にかかわるパーティのIDを検証します。
すべてのホストとプールで証明書の検証を有効にすることをお勧めします。XenServerホストがプールに正常に参加するには、ホストとプールの両方で証明書の検証が有効または無効になっている必要があります。一方では証明書の検証が有効になっており、もう一方では有効になっていない場合、参加の試みは成功しません。XenCenterは、プールまたは参加ホストで証明書の検証を有効にするように勧める警告メッセージを表示します。
証明書の検証が有効な状態でホストがプールから離れると、ホストとプールの両方が、他方に関連する証明書を削除します。
証明書の検証では、ワークロードバランス仮想アプライアンスを使用できます。ワークロードバランスの自己署名証明書がXenServerホストにインストールされていることを確認する必要があります。
XenServer Conversion Manager仮想アプライアンスはXenServerホストに接続しないため、TLSクライアントエンドポイントとして機能する場合、証明書チェック要件を免除されます。
プールの証明書の検証を有効にする
証明書の検証は、XenServer 8以降の新規インストールでは、デフォルトで有効になっています。以前のバージョンのXenServerまたはCitrix Hypervisorからアップグレードする場合、証明書の検証は自動的に有効にならないため、有効にする必要があります。XenCenterでは、アップグレードされたプールに接続するときに、証明書の検証を有効にするように求められます。
プールで証明書の検証を有効にする前に、プールで操作が実行されていないことを確認してください。
XenCenterを使用して有効にする
XenCenterには、証明書の検証を有効にする方法がいくつかあります。
-
証明書の検証が有効になっていないプールに初めてXenCenterを接続したときには、有効にするように求められます。[はい。証明書の検証を有効にします]をクリックします。
-
[プール]メニューで、[証明書の検証を有効にする]を選択します。
-
プールの[全般]タブで、[証明書の検証] エントリを右クリックし、メニューから [証明書の検証を有効にする]を選択します。
xe CLIで有効にする
プールで証明書の検証を有効にするには、プール内のホストのコンソールで次のコマンドを実行します。
xe pool-enable-tls-verification
証明書を管理する
ホストのIDを検証するために使用される証明書をインストール、情報表示、およびリセットできます。
証明書をインストールする
管理ネットワーク上のクライアントアプリケーションから接続を受信するときに、ホストがID証明書として提示する独自のTLS証明書をインストールできます。
詳しくは、「Install a TLS certificate on your host」を参照してください。
証明書情報を表示する
プールで証明書の検証が有効になっているかどうかを確認するには:
-
XenCenterで、プールの [全般] タブを確認します。[全般] セクションには、証明書の検証が有効か無効かを示す [証明書の検証]のエントリがあります。また、このタブの [証明書] セクションには、CA証明書の名前、有効期限、および拇印が表示されます。
-
xe CLIを使用して、次のコマンドを実行できます:
xe pool-param-get uuid=<pool_uuid> param-name=tls-verification-enabled
証明書の検証が有効になっている場合、
tls-verification-enabled ( RO): true
行がコマンド出力に表示されます。
XenServerホスト上の証明書に関する情報を表示するには:
-
XenCenterで、そのホストの [全般] タブに移動します。[証明書] セクションには、サーバーID証明書とプール内部ID証明書の拇印と有効期限が表示されます。
-
xe CLIを使用して、次のコマンドを実行できます:
xe certificate-list
プール内部ID証明書を更新する
xe CLIを使用して、プール内部ID証明書を更新できます:
-
次のコマンドを実行して、証明書をリセットするホストのUUIDを見つけます。
xe host-list
-
証明書をリセットするには、次のコマンドを実行します:
xe host-refresh-server-certificate host=<host_uuid>
注:
このコマンドで任意のホストセレクターパラメーターを使い、証明書をリセットするホストを指定することができます。
サーバーID証明書をリセットする
サーバーID証明書は、XenCenterまたはxe CLIからリセットできます。証明書をリセットすると、ホストから証明書が削除され、代わりに新しい自己署名証明書がインストールされます。
XenCenterで証明書をリセットするには、以下の手順を実行します:
- ホストの [全般] タブに移動します。
- [証明書] セクションで、リセットする証明書を右クリックします。
- メニューから [証明書のリセット]を選択します。
- 表示されるダイアログボックスで[はい]をクリックして、証明書のリセットを確認します。
または、[サーバー] メニューで、[証明書]>[証明書のリセット] に移動できます。
証明書をリセットすると、XenCenterとホスト間の接続など、XenServerホストへの既存の接続がすべて切断されます。XenCenterは、証明書のリセット後にホストに自動的に再接続します。
xe CLIを使用して証明書をリセットするには:
-
次のコマンドを実行して、証明書をリセットするホストのUUIDを見つけます。
xe host-list
-
証明書をリセットするには、次のコマンドを実行します:
xe host-reset-server-certificate host=<host_uuid>
注:
このコマンドで任意のホストセレクターパラメーターを使い、証明書をリセットするXenServerホストを指定することができます。
証明書をリセットすると、XenCenterとホスト間の接続など、XenServerホストへの既存の接続がすべて切断されます。XenCenterは、証明書のリセット後にホストに自動的に再接続します。
有効期限の通知
XenCenterは、サーバーID証明書、プール内部ID証明書、またはプールCA証明書の有効期限が近づくと、[通知] ビューにアラートを表示します。
証明書の検証を一時的に無効にする
ホストまたはプールで証明書の検証を有効にした後で無効にすることはお勧めしません。ただし、XenServerには、証明書の問題のトラブルシューティング時に、ホストごとに証明書の検証を無効にするコマンドが用意されています。
証明書の検証を一時的に無効にするには、ホストコンソールで次のコマンドを実行します:
xe host-emergency-disable-tls-verification
証明書の検証が有効になっているプール内でホストの証明書の検証が無効になっている場合、XenCenterは [通知] ビューにアラートを表示します。
ホスト上の証明書に関する問題を解決したら、証明書の検証を再度有効にしてください。証明書の検証を再度有効にするには、ホストコンソールで次のコマンドを実行します:
xe host-emergency-reenable-tls-verification