Workload Balancing の証明書
XenServer® と Workload Balancing は HTTPS 経由で通信します。Workload Balancing の構成中、ウィザードは 自己署名テスト証明書を自動的に作成します。この自己署名テスト証明書により、Workload Balancing は XenServer への TLS 接続を確立できます。デフォルトでは、Workload Balancing は XenServer とのこの TLS 接続を 自動的に作成します。Workload Balancing がこの TLS 接続を作成するために、構成中または構成後に証明書の設定を 行う必要はありません。
注記:
自己署名証明書は、HTTPS 通信を容易にするためのプレースホルダーであり、信頼された証明書 機関からのものではありません。セキュリティを強化するために、信頼された証明書機関によって署名された証明書を使用することをお勧めします。
商用認証局からの署名付き証明書など、別の認証局からの証明書を使用するには、Workload Balancing と XenServer を 構成してそれを使用する必要があります。
デフォルトでは、XenServer は Workload Balancing への接続を確立する前に、証明書のIDを検証します。特定の証明書をチェックするように XenServer を構成するには、証明書の署名に 使用されたルート証明書をエクスポートします。証明書を XenServer にコピーし、Workload Balancing への接続が確立されたときに XenServer がそれをチェックするように構成します。このシナリオでは、XenServer がクライアントとして機能し、Workload Balancing がサーバーとして機能します。
セキュリティ目標に応じて、次のいずれかを実行できます。
![XenServer は、Workload Balancing 仮想アプライアンスが TLS 経由で接続することを許可する前に、特定の証明書が存在することを確認します。この場合、実際の証明書(秘密鍵を持つ証明書)は Workload Balancing サーバー上にあります。署名に使用された証明書は XenServer プールコーディネーター上にあります。]](/en-us/xenserver/9/media/wlb-certificates.png)
注記:
証明書の検証は、不要な接続を防ぐために設計されたセキュリティ対策です。Workload Balancing 証明書は厳格な要件を満たしている必要があり、そうでない場合、証明書の検証は成功しません。証明書の 検証が失敗すると、XenServer は接続を許可しません。
証明書の検証を成功させるには、XenServer が証明書を見つけることを期待する特定の場所に 証明書を保存する必要があります。
証明書の自動インポート
XenCenter® 2025.1 以降と Workload Balancing 8.4.0 以降では、Workload Balancing への接続を初めて構成する際に、XenCenter が Workload Balancing 証明書を自動的にインポートします。
XenCenterを実行しているWindowsシステムがWorkload Balancing仮想アプライアンスにアクセスできない場合(たとえば、 Workload BalancingとXenServer間の通信に使用されるポートが無効になっている場合)、証明書の自動インポートは 利用できず、代わりにWorkload Balancing証明書をプールに手動でインストールする必要があります。
自己署名証明書を検証するようにXenServerを構成する
XenServerがWorkload Balancingの接続を許可する前に、XenServer Workload Balancingの自己署名証明書が本物であることを 検証するようにXenServerを構成できます。
重要:
XenServer Workload Balancingの自己署名証明書を検証するには、ホスト名を使用してWorkload Balancingに接続する必要があります。 Workload Balancingのホスト名を見つけるには、仮想アプライアンスで
hostnameコマンドを実行します。
自己署名証明書を検証するようにXenServerを構成するには、次の手順を完了します。
-
自己署名証明書をWorkload Balancing仮想アプライアンスからプールコーディネーターにコピーします。 XenServer Workload Balancingの自己署名証明書は
/etc/ssl/certs/server.pemに保存されています。次の コマンドをプールコーディネーターで実行します。scp root@<wlb-ip>:/etc/ssl/certs/server.pem wlb.pem <!--NeedCopy--> -
wlb-ipの信頼性を確立できないというメッセージが表示された場合は、続行するためにyesと入力します。 -
プロンプトが表示されたら、Workload Balancing仮想アプライアンスのrootパスワードを入力します。証明書は現在の ディレクトリにコピーされます。
-
証明書をインストールします。証明書をコピーしたディレクトリで次のコマンドを実行します。
xe pool-certificate-install filename=wlb.pem <!--NeedCopy--> -
プールコーディネーターで次のコマンドを実行して、証明書が正しくインストールされたことを確認します。
xe pool-certificate-list <!--NeedCopy-->証明書が正しくインストールされている場合、このコマンドの出力にはエクスポートされたルート証明書が含まれます。 このコマンドを実行すると、インストールした証明書を含む、インストールされているすべてのTLS証明書が一覧表示されます。
-
コーディネーターからプール内のすべてのホストに証明書を同期するには、次のコマンドを プールコーディネーターで実行します。
xe pool-certificate-sync <!--NeedCopy-->コーディネーターで
pool-certificate-syncコマンドを実行すると、すべてのプールホストの証明書と証明書 失効リストがコーディネーターと同期されます。このアクションにより、プール内のすべてのホストが 同じ証明書を使用するようになります。このコマンドからは出力がありません。ただし、この手順が正常に機能しなかった場合、次の手順は機能しません。
-
XenServerがWorkload Balancing仮想アプライアンスに接続する前に証明書を検証するように指示します。 プールコーディネーターで次のコマンドを実行します。
xe pool-param-set wlb-verify-cert=true uuid=uuid_of_pool <!--NeedCopy-->ヒント:
Tabキーを押すと、プールのUUIDが自動的に入力されます。
-
(オプション) この手順が正常に機能したことを確認するには、次の手順を実行します。
-
証明書がプール内の他のホストに同期されたかどうかをテストするには、
pool-certificate-listコマンドをそれらのホストで実行します。 -
XenServerが証明書を検証するように設定されているかどうかをテストするには、
param-name=wlb-verify-certパラメーターを指定してpool-param-getコマンドを実行します。 例:xe pool-param-get param-name=wlb-verify-cert uuid=uuid_of_pool <!--NeedCopy-->
-
XenServerが認証局証明書を検証するように構成する
信頼された認証局によって署名された証明書をXenServerが検証するように構成できます。
信頼された認証局証明書の場合、XenServerは公開鍵を含む.pem形式のエクスポートされた証明書または証明書チェーン(中間証明書
およびルート証明書)を必要とします。
Workload Balancingで信頼された認証局証明書を使用する場合は、次のタスクを実行します。
これらのタスクを開始する前に、以下を確認してください。
-
XenServerプールコーディネーターのIPアドレスを把握していること。
-
XenServerはWorkload Balancingのホスト名を解決できます。(例えば、プールコーディネーターのXenServerコンソールからWorkload Balancing FQDNにpingを試すことができます。)
認証局から署名付き証明書を取得する
認証局から証明書を取得するには、証明書署名要求 (CSR) を生成する必要があります。Workload Balancing仮想アプライアンスで、 秘密鍵を作成し、その秘密鍵を使用してCSRを生成します。
コモンネームの指定に関するガイドライン
CSRの作成時に指定するコモンネーム (CN) は、Workload Balancing仮想アプライアンスのFQDNと完全に一致する必要があります。 また、Connect to WLB Server ダイアログボックスの Address ボックスで指定したFQDNまたはIPアドレスとも 一致する必要があります。
名前が一致するように、以下のいずれかのガイドラインを使用してコモンネームを指定してください。
-
証明書のコモンネームには、Connect to WLB Server ダイアログで指定した情報と 同じ情報を指定します。
例えば、Workload Balancing仮想アプライアンスの名前が
wlb-vpx.yourdomainの場合、 Connect to WLB Server ダイアログでwlb-vpx.yourdomainを指定し、CSRの作成時にコモンネームとしてwlb-vpx.yourdomainを 指定します。 -
プールをIPアドレスでWorkload Balancingに接続した場合、コモンネームとしてFQDNを使用し、IPアドレスを サブジェクト代替名 (SAN) として使用します。ただし、このアプローチはすべての状況で機能するとは限りません。
秘密鍵ファイルを作成する
Workload Balancing仮想アプライアンスで、次の手順を実行します。
-
秘密鍵ファイルを作成します。
openssl genrsa -des3 -out privatekey.pem 2048 <!--NeedCopy--> -
パスワードを削除します。
openssl rsa -in privatekey.pem -out privatekey.nop.pem <!--NeedCopy-->
注:
パスワードを誤って入力したり、一貫性のない入力をしたりすると、ユーザーインターフェイスエラーを示すメッセージが 表示されることがあります。そのメッセージは無視して、コマンドを再実行して秘密鍵ファイルを作成できます。
証明書署名要求を生成する
Workload Balancing仮想アプライアンスで、次の手順を実行します。
-
秘密鍵を使用して証明書署名要求 (CSR) を作成します。
openssl req -new -key privatekey.nop.pem -out csr <!--NeedCopy--> -
プロンプトに従って、CSRの生成に必要な情報を提供します。
国名。お住まいの国のTLS証明書国コードを入力します。たとえば、カナダの場合はCA、ジャマイカの場合はJMです。 TLS証明書国コードのリストはWebで確認できます。
都道府県名(正式名称)。プールが配置されている都道府県を入力します。たとえば、 マサチューセッツ州またはアルバータ州です。
市区町村名。プールが配置されている都市の名前です。
組織名。会社または組織の名前です。
部署名。部署名を入力します。このフィールドはオプションです。
コモンネーム。Workload BalancingサーバーのFQDNを入力します。この値は、プールがWorkload Balancingに接続するために使用する名前と一致する必要があります。 詳細については、 コモンネーム指定のガイドラインを参照してください。
メールアドレス。このメールアドレスは、証明書を生成する際に証明書に含まれます。
-
オプションの属性を指定するか、Enterキーを押してこの情報の提供をスキップします。
CSR要求は現在のディレクトリに保存され、
csrという名前が付けられます。 -
Workload Balancingアプライアンスコンソールで次のコマンドを実行して、コンソールウィンドウにCSRを表示します。
cat csr <!--NeedCopy--> -
CSR全体をコピーし、それを使用して認証局に証明書を要求します。
新しい証明書を指定して適用する
Workload Balancing が認証局からの証明書を使用するように指定するには、この手順を使用します。この手順では ルート証明書と(利用可能な場合は)中間証明書をインストールします。
新しい証明書を指定するには、次の手順を実行します。
-
認証局から、署名済み証明書、ルート証明書、および(認証局が提供している場合は)中間 証明書をダウンロードします。
-
証明書をWorkload Balancing仮想アプライアンスに直接ダウンロードしなかった場合は、次のいずれかの方法を 使用してコピーします。
-
Windowsコンピューターから、WinSCPまたは別のコピーユーティリティを使用します。
ホスト名にはIPアドレスを入力し、ポートはデフォルトのままにできます。ユーザー名とパスワードは 通常rootであり、構成時に設定したパスワードです。
-
LinuxコンピューターからWorkload Balancingアプライアンスへは、SCPまたは別のコピーユーティリティを使用します。例:
scp root_ca.pem root@wlb-ip:/path_on_your_WLB <!--NeedCopy-->
-
-
Workload Balancing仮想アプライアンスで、すべての証明書(ルート証明書、 中間証明書(存在する場合)、および署名済み証明書)の内容を1つのファイルに結合します。次のコマンドを使用できます。
cat signed_cert.pem intermediate_ca.pem root_ca.pem > server.pem <!--NeedCopy--> -
移動コマンドを使用して、既存の証明書とキーの名前を変更します。
mv /etc/ssl/certs/server.pem /etc/ssl/certs/server.pem_orig mv /etc/ssl/certs/server.key /etc/ssl/certs/server.key_orig <!--NeedCopy--> -
結合された証明書をコピーします。
mv server.pem /etc/ssl/certs/server.pem <!--NeedCopy--> -
以前に作成した秘密鍵をコピーします。
mv privatekey.nop.pem /etc/ssl/certs/server.key <!--NeedCopy--> -
秘密鍵をrootのみが読み取り可能にします。
chmodコマンドを使用して権限を修正します。chmod 600 /etc/ssl/certs/server.key <!--NeedCopy--> -
stunnelを再起動します。pkill -9 stunnel stunnel <!--NeedCopy-->
証明書チェーンをプールにインポートする
証明書を取得したら、XenServer プールコーディネーターにインポートします。プール内のホストを同期して、 それらの証明書を使用するようにします。その後、Workload Balancing がホストに接続するたびに、 XenServer が証明書のIDと有効性を確認するように構成できます。
-
署名済み証明書、ルート証明書、および証明機関が中間証明書を持っている場合は、その中間証明書を 証明機関から XenServer プールコーディネーターにコピーします。
-
ルート証明書をプールコーディネーターにインストールします。
xe pool-install-ca-certificate filename=root_ca.pem <!--NeedCopy--> -
該当する場合は、中間証明書をプールコーディネーターにインストールします。
xe pool-install-ca-certificate filename=intermediate_ca.pem <!--NeedCopy--> -
プールコーディネーターでこのコマンドを実行して、両方の証明書が正しくインストールされていることを確認します。
xe pool-certificate-list <!--NeedCopy-->このコマンドを実行すると、インストールされているすべてのTLS証明書が一覧表示されます。証明書が正常にインストールされていれば、 このリストに表示されます。
-
プールコーディネーター上の証明書をプール内のすべてのホストに同期します。
xe pool-certificate-sync <!--NeedCopy-->コーディネーターで
pool-certificate-syncコマンドを実行すると、すべてのプールホストの証明書と証明書失効リストが プールコーディネーターと同期されます。このアクションにより、プール内のすべてのホストが 同じ証明書を使用するようになります。 -
Workload Balancing 仮想アプライアンスに接続する前に証明書を検証するように XenServer に指示します。 プールコーディネーターで次のコマンドを実行します。
xe pool-param-set wlb-verify-cert=true uuid=uuid_of_pool <!--NeedCopy-->ヒント:
Tabキーを押すと、プールのUUIDが自動的に入力されます。
-
証明書検証を有効にする前に、Connect to WLB Server ダイアログでIPアドレスを指定した場合、 プールをWorkload Balancingに再接続するよう求められることがあります。
Connect to WLB Server ダイアログのAddressで、Workload BalancingアプライアンスのFQDNを、 証明書のコモンネームに表示されているとおりに正確に指定します。コモンネームが XenServerが接続に使用する名前と一致することを確認するために、FQDNを入力します。
トラブルシューティング
-
証明書検証は、プールでデフォルトで有効になっています。プールがWorkload Balancingに接続できない場合は、 証明書検証を無効にしてください。
-
プールUUIDを取得します。
xe pool-list <!--NeedCopy--> -
証明書の検証を無効にします。
xe pool-param-set wlb-verify-cert=false uuid=uuid_of_pool <!--NeedCopy-->
プールが証明書検証をオフにした状態でWorkload Balancingに接続できる場合、問題は 証明書の設定にあります。接続できない場合は、Workload Balancingの資格情報または ネットワーク接続に問題があります。詳細については、サポートに問い合わせるか、 Workload Balancingのトラブルシューティングを参照してください。
-
-
一部の商用認証局は、証明書が正しくインストールされていることを確認するためのツールを提供しています。 これらの手順で問題の特定に役立たない場合は、これらのツールを実行することを検討してください。これらのツールでTLS ポートの指定が必要な場合は、ポート8012、またはWorkload Balancingの設定中に設定したポートを指定してください。
-
WLBタブに接続エラーが表示される場合、証明書のコモンネームと Workload Balancing仮想アプライアンスの名前との間に競合がある可能性があります。Workload Balancing仮想アプライアンスの名前と証明書のコモンネームは 完全に一致している必要があります。
詳細については、トラブルシューティングを参照してください。
自己署名証明書を再生成する
Workload Balancing仮想アプライアンスのIPアドレスが変更され、証明書の値と 一致しなくなった場合、Workload Balancingはコンソールに警告メッセージを表示します。
この警告に対処するには、次の手順を実行します。
- Workload Balancing仮想アプライアンスにログインします。
- 次のコマンドを実行して証明書を再生成します:
wlb_update_cert.sh - Workload Balancing仮想アプライアンスに再接続します。