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

このセクションでは、証明書の安全性を向上させるための以下の方法について説明します。

  • Citrix Hypervisorが信頼された機関からの証明書を検証するように設定する。

  • Citrix HypervisorがデフォルトのCitrix WLB自己署名証明書を検証するように設定する。

概要

Citrix Hypervisorとワークロードバランスサーバーは、HTTPSを使用して通信します。このため、ワークロードバランス仮想アプライアンスの設定時に、ウィザードにより自己署名入りのテスト証明書が自動的に作成されます。このテスト証明書により、ワークロードバランスとCitrix HypervisorとのSSL接続が確立されます。

注:

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

このSSL接続は、Citrix Hypervisorでデフォルトで自動的に作成されます。ワークロードバランス仮想アプライアンスの設定時および設定後に追加の証明書設定を行う必要はありません。

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

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

この図では、ワークロードバランス仮想アプライアンスとのSSL接続を確立するときに、Citrix Hypervisorで証明書が検証されています。この場合、実際の証明書(秘密キー付きの証明書)がワークロードバランス仮想アプライアンス上にあり、その署名に使用された証明書がCitrix Hypervisorのプールマスタ上にあります。

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

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

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

重要:

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

Citrix WLB自己署名証明書が検証されるように設定するには、以下の手順に従います。

Citrix Hypervisorで自己署名証明書が検証されるように設定するには:

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

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

  3. ワークロードバランス仮想アプライアンスのルートパスワードを入力すると、証明書が現在のディレクトリにコピーされます。

  4. 証明書をインストールします。これを行うには、PEMファイルをコピーしたディレクトリでpool-certificate-installコマンドを実行します。例:

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

    xe pool-certificate-list
    

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

  6. プールマスタでpool-certificate-syncコマンドを実行して、証明書をほかのホストに同期します:

    xe pool-certificate-sync
    

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

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

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

    xe pool-param-set wlb-verify-cert=true uuid=uuid_of_pool
    

    ヒント:

    プールの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
      

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

Citrix Hypervisorがワークロードバランス仮想アプライアンスとの接続を確立するときに、信頼された証明機関からの証明書を検証するように設定できます。

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

信頼された機関からの証明書がXenServerで検証されるように設定するには、以下のタスクを行います。

  1. 信頼された証明機関から、署名入りの証明書を入手します。「タスク1:証明機関から証明書を入手する」を参照してください。

  2. 入手した証明書を指定および適用します。詳しくは、「タスク2:新しい証明書を指定する」を参照してください。

  3. 入手した証明書をインストールして、プールマスタでその証明書が検証されるように設定します。「タスク3:証明書チェーンをプールにインポートする」を参照してください。

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

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

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

重要:

IPアドレスを使ってワークロードバランス仮想アプライアンスに接続する場合は、証明書の生成時にそのIPアドレスをSAN(Subject Alternative Name:サブジェクトの別名)として指定する必要があります。

タスク1:証明機関から証明書を入手する

証明機関から証明書を入手するには、証明書署名要求(CSR:Certificate Signing Request)を生成する必要があります。ワークロードバランス仮想アプライアンスの証明書署名要求を生成するには、秘密キーを作成し、それを使用して証明書署名要求を生成します。これらの作業は、ワークロードバランス仮想アプライアンス上で行います。

証明書の一般名について

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

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

  • [WLBサーバーへの接続]ダイアログボックスで指定したものと同じCNを指定する。たとえば、ワークロードバランス仮想アプライアンスの名前が「wlb-vpx.yourdomain」である場合は、[WLBサーバーへの接続]ダイアログボックスで「wlb-vpx.yourdomain」と指定し、証明書署名要求の生成時にも「wlb-vpx.yourdomain」と指定します。

  • プールをワークロードバランス仮想アプライアンスに接続するときにIPアドレスを指定した場合は、CNとしてFQDNを使用し、SANとしてIPアドレスを指定します。ただし、このような証明書では問題が生じる場合もあります。

注:

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

秘密キーファイルを作成するには:

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

    openssl genrsa -des3 -out privatekey.pem 2048
    
  2. 次のコマンドを実行して、パスワードを削除します。

    openssl rsa -in privatekey.pem -out privatekey.nop.pem
    

注:

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

証明書署名要求を生成するには:

  1. 以下の手順に従って、証明書署名要求を生成します。

    1. 次のコマンドで秘密キーを指定して、証明書署名要求を生成します。

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

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

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

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

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

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

      Common Name:ワークロードバランス仮想アプライアンスのFQDNを入力します。プールでワークロードバランス仮想アプライアンスに接続するときに使用した情報を入力する必要があります。

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

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

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

  2. ワークロードバランス仮想アプライアンスのコンソールで次のコマンドを実行して、証明書署名要求の内容を表示します。

    cat csr
    
  3. 証明書署名要求の全内容をコピーして、証明機関に証明書を要求します。

タスク2:新しい証明書を指定する

証明機関から入手した証明書を使用するには、以下の手順に従います。この手順により、ルート証明書と中間証明書(該当する場合)がインストールされます。

新しい証明書を指定するには:

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

  2. ワークロードバランス仮想アプライアンス以外のコンピューターに証明書をダウンロードした場合は、次のいずれかを行います:

    1. Windowsコンピューターにダウンロードした場合は、WinSCPなどのコピーユーティリティを使用して証明書ファイルをワークロードバランス仮想アプライアンスにコピーします。

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

    1. Linuxコンピューターにダウンロードした場合は、SCPなどのコピーユーティリティを使用して証明書ファイルをワークロードバランス仮想アプライアンスにコピーします。例:

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

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

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

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

    chmod 600 /etc/ssl/certs/server.key
    
  8. stunnelを再起動します:

    killall stunnel
    stunnel
    

タスク3:証明書チェーンをプールにインポートする

証明書を入手したら、Citrix Hypervisorプールマスタ上にインポート(インストール)して、プール内のすべてのホストでそれらの証明書が使用されるように同期します。その後で、ワークロードバランスからの接続時に証明書が検証されるように、Citrix Hypervisorを設定します。

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

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

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

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

    xe pool-certificate-list
    

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

  5. 次のコマンドを実行して、証明書をほかのホストに同期します。

    xe pool-certificate-sync
    

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

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

    xe pool-param-set wlb-verify-cert=true uuid=uuid_of_pool
    

    ヒント:

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

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

    この場合は、[WLBサーバーへの接続]ダイアログボックスの[アドレス]ボックスに、ワークロードバランス仮想アプライアンスのFQDN証明書のCNと同じもの)を入力します(証明書のCNは、ワークロードバランス仮想アプライアンスのFQDN、およびCitrix Hypervisorで[WLBサーバーへの接続]ダイアログボックスの[アドレス]ボックスに入力したFQDNと一致する必要があります)。

トラブルシューティングのヒント

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

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

  • ここで説明したタスクを実行した後で[WLB]タブに「ワークロードバランスサーバーへの接続中にエラーが発生しました」というメッセージが表示された場合は、証明書のCNとワークロードバランス仮想アプライアンス名が一致していることを確認してください。証明書のCNとワークロードバランス仮想アプライアンス名は、完全に一致している必要があります。