Citrix Hypervisor

ワークロードバランスの証明書

Citrix Hypervisorとワークロードバランスサーバーは、HTTPSを使用して通信します。ワークロードバランス仮想アプライアンスの設定時に、ウィザードにより自己署名入りのテスト証明書が自動的に作成されます。このテスト証明書により、ワークロードバランスとCitrix HypervisorとのTLS接続が確立されます。デフォルトでは、ワークロードバランスにより、Citrix HypervisorとのこのTLS接続が自動的に作成されます。ワークロードバランス仮想アプライアンスの設定時および設定後に追加の証明書設定を行う必要はありません。

注:

自己署名入りのテスト証明書はHTTPS通信を行うための代替証明書であり、信頼された証明機関からの証明書ではありません。セキュリティを向上させるために、信頼された証明機関からの証明書を使用することをお勧めします。

別の証明機関からの証明書を使用する場合は、ワークロードバランス仮想アプライアンスとCitrix Hypervisorを、その証明書を使用するように設定する必要がります。

デフォルトでは、Citrix Hypervisorにより、ワークロードバランス仮想アプライアンスとの接続を確立する前に証明書の同一性は検証されません。Citrix Hypervisorで特定の証明書を検証するようにするには、その証明書の署名に使用されたルート証明書をエクスポートします。証明書をCitrix Hypervisorにコピーし、ワークロードバランスへの接続時に証明書をチェックするようにCitrix Hypervisorを設定します。この場合、Citrix Hypervisorはクライアントとして動作し、ワークロードバランス仮想アプライアンスはサーバーとして動作します。

環境のセキュリティポリシーに応じて、以下のいずれかを行います。

Citrix Hypervisorにより、ワークロードバランス仮想アプライアンスとのTLS接続が確立される前に、特定の証明書の存在が確認されます。この場合、実際の証明書(秘密キー付きの証明書)はワークロードバランスサーバー上にあります。署名に使用された証明書は、Citrix Hypervisorのプールマスターにあります。

注:

証明書の検証機能は、不正な接続を防ぐ目的で設計されています。ワークロードバランスの証明書が厳密な要件を満たさない場合は、証明書の検証に失敗します。証明書の検証に失敗すると、Citrix Hypervisorとワークロードバランス仮想アプライアンスの接続が確立されません。

証明書を検証するには、Citrix Hypervisorが特定できる適切な場所に証明書が格納されている必要があります。

Citrix Hypervisorで自己署名証明書の検証を設定する

Citrix Hypervisorがワークロードバランス仮想アプライアンスとの接続を確立する前にCitrixワークロードバランスの自己署名証明書が本物であることを検証するように、Citrix Hypervisorを設定できます。

重要:

Citrixワークロードバランスの自己署名証明書をXenServerで検証する場合は、ホスト名を指定してワークロードバランス仮想アプライアンスに接続する必要があります。ワークロードバランスのホスト名を確認するには、仮想アプライアンス上でhostnameコマンドを実行します。

自己署名証明書を検証するようにCitrix Hypervisorを構成するには、次の手順を実行します:

  1. ワークロードバランス仮想アプライアンス上の自己署名入り証明書をプールマスターにコピーします。Citrixワークロードバランスの自己署名証明書は/etc/ssl/certs/server.pemに保存されます。これを行うには、プールマスターで次のコマンドを実行します。

    scp root@<wlb-ip>:/etc/ssl/certs/server.pem .
    <!--NeedCopy-->
    
  2. ワークロードバランス仮想アプライアンスのIPアドレス(wlb-ip)の信頼性を確認できないという内容のメッセージが表示されたら、「yes」と入力して続行します。

  3. プロンプトが表示されたら、ワークロードバランス仮想アプライアンスのルートパスワードを入力します。証明書が現在のフォルダーにコピーされます。

  4. 証明書をインストールします。証明書をコピーしたディレクトリで次のコマンドを実行します:

    xe pool-certificate-install filename=server.pem
    <!--NeedCopy-->
    
  5. プールマスターで次のコマンドを実行して、証明書が正しくインストールされたことを確認します:

    xe pool-certificate-list
    <!--NeedCopy-->
    

    証明書が正しくインストールされた場合は、このコマンドの出力に、エクスポートされたルート証明書が含まれています。(このコマンドを実行すると、インストールされているすべてのTLS証明書が一覧表示されます)。

  6. 証明書をマスターからすべてのサーバーへと同期させるには、プールマスターで次のコマンドを実行します:

    xe pool-certificate-sync
    <!--NeedCopy-->
    

    プールマスター上でpool-certificate-syncコマンドを実行すると、証明書および証明書失効一覧がプール内で同期されます。この操作により、プール内のすべてのサーバーで同じ証明書が使用されるようになります。

    このコマンドを実行しても、何も出力されません。このコマンドが正しく実行されていない場合、次の手順も機能しません。

  7. ワークロードバランス仮想アプライアンスとの接続を確立する前に証明書を検証するように、Citrix Hypervisorに指示します。これを行うには、プールマスターで次のコマンドを実行します。

    xe pool-param-set wlb-verify-cert=true uuid=uuid_of_pool
    <!--NeedCopy-->
    

    ヒント:

    プールのUUIDは、Tabキーを押すと自動で入力されます。

  8. (オプション)このコマンドが正しく実行されたことを確認するには、以下の手順に従います:

    1. プール内のほかのサーバーに証明書が同期されたことを確認するには、それらのサーバーでpool-certificate-listコマンドを実行します。

    2. 証明書を検証するようにCitrix Hypervisorが設定されていることを確認するには、pool-param-getコマンドにparam-name=wlb-verify-certパラメーターを指定して実行します。たとえば、次のようになります:

      xe pool-param-get param-name=wlb-verify-cert uuid=uuid_of_pool
      <!--NeedCopy-->
      

Citrix Hypervisorで証明機関からの証明書の検証を設定する

信頼された証明機関によって署名された証明書を検証するように、Citrix Hypervisorを設定できます。

信頼された機関からの証明書をCitrix Hypervisorで使用するには、公開キーを含んだ、.pem形式のファイルとしてエクスポートした証明書または証明書チェーン(中間証明書とルート証明書)が必要です。

信頼された機関からの証明書をワークロードバランスで使用する必要がある場合は、次のタスクを行います:

  1. 信頼された証明機関から署名入りの証明書を入手します

  2. 新しい証明書を指定して適用します

  3. 証明書チェーンをプールにインポートします

これらのタスクを実行する前に、以下の点を確認します:

  • Citrix HypervisorのプールマスターのIPアドレスが必要です。

  • Citrix Hypervisorでワークロードバランス仮想アプライアンスのホスト名を解決できる必要があります(Citrix Hypervisorプールマスターのコンソールでワークロードバランス仮想アプライアンスの完全修飾ドメイン名を指定してpingを実行できるなど)。

信頼された証明機関からの署名入り証明書の入手

認証局から証明書を取得するには、証明書署名要求(CSR)を生成する必要があります。ワークロードバランス仮想アプライアンスで、秘密キーを作成し、その秘密キーを使用してCSRを生成します。

証明書の一般名について

CSRの作成時に指定する一般名(CN:Common Name)は、ワークロードバランス仮想アプライアンスの完全修飾ドメイン名と正確に一致させる必要があります。また、[WLBサーバーへの接続] ダイアログボックスの [アドレス] ボックスで指定した完全修飾ドメイン名またはIPアドレスとも一致させる必要があります。

CNを指定するときは、以下のいずれかのガイドラインに従います。

  • [WLBサーバーへの接続] ダイアログボックスで指定したものと同じCNを指定する。

    たとえば、ワークロードバランス仮想アプライアンスの名前が「wlb-vpx.yourdomain」である場合は、[WLBサーバーへの接続] ダイアログボックスで「wlb-vpx.yourdomain」と指定し、CSRの作成時にCNとして「wlb-vpx.yourdomain」と指定します。

  • IPアドレスを使用してプールをワークロードバランスに接続した場合は、完全修飾ドメイン名をCNとして使用し、IPアドレスをサブジェクトの別名(SAN)として指定します。ただし、このやり方では問題が生じる場合もあります。

秘密キーファイルの作成

ワークロードバランス仮想アプライアンスで、次の手順を実行します:

  1. 次のコマンドを実行して、秘密キーファイルを作成します。

    openssl genrsa -des3 -out privatekey.pem 2048
    <!--NeedCopy-->
    
  2. パスワードを削除します:

    openssl rsa -in privatekey.pem -out privatekey.nop.pem
    <!--NeedCopy-->
    

注:

不正なパスワードを入力すると、ユーザーインターフェイスエラーが発生したという内容のメッセージが表示されることがあります。このメッセージは無視して構いません。そのままコマンドを実行して秘密キーファイルを作成します。

証明書署名要求の作成

ワークロードバランス仮想アプライアンスで、次の手順を実行します:

  1. 秘密キーを使用して証明書署名要求を作成します:

    openssl req -new -key privatekey.nop.pem -out csr
    <!--NeedCopy-->
    
  2. 画面のメッセージに従って以下の情報を入力し、証明書署名要求を生成します。

    Country Name:TLS証明書の国コードを入力します。日本の国コードは「JP」です。国コードの一覧については、インターネット上を検索して入手できます。

    State or Province Name(full name):プールが動作する場所の都道府県名を入力します。たとえば、東京の場合は「Tokyo」と入力します。

    Locality Name:プールが動作する場所の市区町村名を入力します。

    Organization Name:所属組織または会社の名前を入力します。

    Organizational Unit Name:部門や部署の名前を入力します。この情報は入力しなくても構いません。

    Common Name:ワークロードバランス仮想アプライアンスのFQDNを入力します。この値は、プールでワークロードバランス仮想アプライアンスに接続するときに使用した名前と一致する必要があります。詳しくは、「証明書の一般名について」を参照してください。

    Email Address:証明書に含めるメールアドレスを入力します。

  3. 任意の属性を指定するか、Enterキーを押して次のステップに進みます。

    現在のディレクトリに証明書署名要求が生成され、「csr」という名前で保存されます。

  4. ワークロードバランスのアプライアンスコンソールで次のコマンドを実行して、コンソールウィンドウにCSRを表示します:

    cat csr
    <!--NeedCopy-->
    
  5. CSRの全内容をコピーし、この情報を使用して、証明機関に証明書を要求します。

新しい証明書の指定と適用

この手順では、ワークロードバランスで、認証局からの証明書を使用するように指定します。この手順により、ルート証明書と中間証明書(該当する場合)がインストールされます。

新しい証明書を指定するには、次の手順を実行します:

  1. 証明機関から、署名入り証明書、ルート証明書、および中間証明書(証明機関により提供される場合)をダウンロードします。

  2. 証明書をワークロードバランス仮想アプライアンスに直接ダウンロードしなかった場合は、次のいずれかの方法で証明書をコピーします:

    • Windowsコンピューターから、WinSCPまたは別のコピーユーティリティを使用します。

      この場合、ホスト名としてIPアドレスを指定して、デフォルトのポートを使用します。ユーザー名およびパスワードは、通常rootアカウントのものを使用します(ワークロードバランス仮想アプライアンスの設定時に指定したもの)。

    • Linuxコンピューターからワークロードバランスアプライアンスに、セキュアコピープロトコルまたは別のコピーユーティリティを使用します。たとえば、次のようになります:

       scp root_ca.pem root@wlb-ip:/path_on_your_WLB
       <!--NeedCopy-->
      
  3. ワークロードバランス仮想アプライアンスで、すべての証明書(ルート証明書、中間証明書(インストールされている場合)、および署名入り証明書)の内容を統合して1つのファイルにします。次のコマンドを使用します:

    cat signed_cert.pem intermediate_ca.pem root_ca.pem > server.pem
    <!--NeedCopy-->
    
  4. 次の移動コマンドを実行して、既存の証明書およびキーの名前を変更します:

    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-->
    
  5. 次のコマンドを実行して、統合した証明書をコピーします。

    mv server.pem /etc/ssl/certs/server.pem
    <!--NeedCopy-->
    
  6. 次のコマンドを実行して、先ほど作成した秘密キーをコピーします:

    mv privatekey.nop.pem /etc/ssl/certs/server.key
    <!--NeedCopy-->
    
  7. ルートユーザーだけが秘密キーを読み取れるようにします。権限を修正するには、chmodコマンドを実行します。

    chmod 600 /etc/ssl/certs/server.key
    <!--NeedCopy-->
    
  8. stunnelを再起動します:

    killall stunnel
    stunnel
    <!--NeedCopy-->
    

プールへの証明書チェーンのインポート

証明書を取得したら、Citrix Hypervisorのプールマスターにインポートします。これらの証明書を使用するには、プール内のサーバーを同期させます。その後で、ワークロードバランスからサーバーへの接続のたびに証明書が検証されるように、Citrix Hypervisorを設定します。

  1. 署名入り証明書、ルート証明書、および中間証明書(証明機関により提供される場合)をCitrix Hypervisorのプールマスターにコピーします。

  2. 次のコマンドを実行して、ルート証明書をプールマスターにインストールします。

    xe pool-certificate-install filename=root_ca.pem
    <!--NeedCopy-->
    
  3. 中間証明書を使用する場合は、それもプールマスターにインストールします。

    xe pool-certificate-install filename=intermediate_ca.pem
    <!--NeedCopy-->
    
  4. 証明書が正しくインストールされたことを確認します。これを行うには、プールマスターで次のコマンドを実行します。

    xe pool-certificate-list
    <!--NeedCopy-->
    

    このコマンドにより、インストールされているすべてのTLS証明書が一覧表示されます。インストールした証明書がこの一覧に含まれていることを確認します。

  5. 次のコマンドを実行して、プールマスター上の証明書をプール内のすべてのサーバーに同期させます:

    xe pool-certificate-sync
    <!--NeedCopy-->
    

    プールマスター上でpool-certificate-syncコマンドを実行すると、証明書および証明書失効一覧がプール内で同期されます。この操作により、プール内のすべてのサーバーで同じ証明書が使用されるようになります。

  6. ワークロードバランス仮想アプライアンスとの接続を確立する前に証明書を検証するように、Citrix Hypervisorに指示します。これを行うには、プールマスターで次のコマンドを実行します。

    xe pool-param-set wlb-verify-cert=true uuid=uuid_of_pool
    <!--NeedCopy-->
    

    ヒント:

    プールのUUIDは、Tabキーを押すと自動で入力されます。

  7. 証明書の検証を有効化する前に、[WLBへの接続]ダイアログボックスでIPアドレスを指定している場合は、プールとワークロードバランスを再接続するように求められることがあります。

    [WLBサーバーへの接続] ダイアログボックスの [アドレス] ボックスに、ワークロードバランス仮想アプライアンスの完全修飾ドメイン名(証明書のCNと同じもの)を入力します完全修飾ドメイン名を入力して、CNが、Citrix Hypervisorで接続に使用される名前と一致していることを確認します。

トラブルシューティング

  • 証明書の検証の設定後にプールからワークロードバランスに接続できなくなった場合は、証明書の検証を無効化し、接続できるか確認してください。xe pool-param-set wlb-verify-cert=false uuid=uuid_of_poolコマンドを使用して証明書の検証を無効にすることができます。証明書の検証を無効にして接続できる場合は、証明書の設定に問題があります。証明書の検証を無効にしても接続できない場合は、ワークロードバランス仮想アプライアンスの資格情報またはネットワーク接続の問題が考えられます。

  • 一部の証明機関では、証明書のインストールを確認するためのツールが提供されています。ここで説明したタスクで問題が生じた場合は、これらのツールを使用して問題を特定してください。これらのツールでTLSポートを指定する必要がある場合は、ポート8012またはワークロードバランス仮想アプライアンスの設定時に指定したポート番号を使用します。

  • [WLB] タブに接続エラーが表示される場合は、証明書のCNとワークロードバランス仮想アプライアンスの名前が競合している可能性があります。ワークロードバランス仮想アプライアンス名と証明書のCNは完全に一致する必要があります。

詳しくは、「トラブルシューティング」を参照してください。

ワークロードバランスの証明書