HTTPS 対応のサイトで PerformancePoint を活用する

原文の記事の投稿日: 2012 年 6 月 20 日 (水曜日)

このブログは久しく待ち望まれていたもので、サポート部門はこの問題に関するお客様からの問い合わせに対応するのにしばらく時間をとられていました。PerformancePoint Services を HTTPS 対応のサイトで機能するように構成した場合、SharePoint リストまたは Excel Services のどちらかのデータ ソースへのデータ ソース接続を作成しようとすると、おそらくいくつかのエラー メッセージが表示されます。

以下に、発生する可能性があるエラー メッセージのいくつかを示します。1 つは PerformancePoint に固有のもの、もう 1 つは SharePoint Foundation に関するものです。

PerformancePoint ダッシュボードに関するエラー メッセージ:
"PerformancePoint Services で、指定したデータ ソースに接続できませんでした。現在のユーザーまたは無人サービス アカウントに、データ ソースに対する読み取りアクセス許可があることを確認してください (セキュリティ構成によって異なります)。また、必要な接続情報がすべて入力されていて、適切であることを確認してください。"

ULS に関するエラー メッセージ:

"SharePoint Foundation | トポロジ | 8311 | 重大 | 次の証明書に検証エラーがあるため、操作が失敗しました: <<証明書パス & 証明書の拇印>>\n\nエラー:\n\n この証明書チェーンのルートは、信頼できるルート証明機関ではありません。"

"PerformancePoint Service | PerformancePoint Services | ef8z | 重大 | PerformancePoint Services で、指定したデータ ソースに接続できませんでした。現在のユーザーまたは無人サービス アカウントに、データ ソースに対する読み取りアクセス許可があることを確認してください (セキュリティ構成によって異なります)。また、必要な接続情報がすべて入力されていて、適切であることを確認してください。System.Net.WebException: 基になる接続が閉じられました: SSL/TLS のセキュリティで保護されているチャネルに対する信頼関係を確立できませんでした"

最も参考になるメッセージは、SharePoint Foundation のエラー メッセージです。実際に起きている問題が証明書に関連していることを示しているからです。PerformancePoint のメッセージは、少々誤解を招く可能性があります。ユーザーが認証/承認に関連するトラブルシューティングに誘導される場合があるからです。確かに根本的には認証/承認の問題ですが、無人サービス アカウントまたはサービス アカウント自体に適切なすべての権限があることを確認する方法はいくつもあります。ですから、証明書に関する問題の場合は、SharePoint Foundation による ULS の重大メッセージを必ず探してください。このメッセージは、PerformancePoint 証明書の問題を示す決定的な証拠です。これらのメッセージが表示された場合は、以下の解決策を試してください。多くのお客様がこの方法によって問題を解決しています。

解決策
前提: ここでは、証明書が既に獲得されていること、操作の対象となる SharePoint サイト用の IIS でバインドが構成されていることを前提としています。この構成が正常に行われていれば、証明書エラーが表示されることなく https サイトにアクセスできます (このプロセスのわかりやすい概要と関連ドキュメントへの信頼できるリンクを提供するブログ投稿があります)。

手順 1: SharePoint サーバーに証明書を抽出する
証明書パスにあるそれぞれの証明書 (ルート、中間、リーフの各証明書) は、ローカル コンピューターの信頼されたルート証明機関にインストールする必要があります。そのためには、証明書パス内の各証明書を "バンドルされた" 証明書から抽出する必要があります。

  1. Web フロントエンド サーバーまたはアプリケーション サーバーに移動します。
  2. Internet Explorer を開き、使用するサイト (https://site) に移動します。
  3. URL のセキュリティ報告を確認して、サイトに関連付けられている証明書を表示します。
    1. URL の右側にある錠前のアイコンをクリックします。
    2. [証明書の表示] をクリックします。
  4. [証明書のパス] (Certificate Path) タブをクリックします。

  1. 証明書パスのルート ノードを選択し、[証明書の表示] (View Certificate) をクリックします。

  1. [証明書] (Certificate) ウィンドウが開くので、[詳細] (Details) タブをクリックします。
  2. [ファイルにコピー] (Copy to File...) ボタンをクリックします。
  3. 証明書のエクスポート ウィザード (Certificate Export Wizard) が開きます。
  4. 既定の証明書形式である [DER encoded binary X.509 (.CER)] を選択し、[次へ] (Next) をクリックします。

  1. ファイルを保存できる場所を指定し、"RootCertificate" というファイル名を割り当てます ([次へ] をクリックします)。
    1. 最初に、[参照] (Browse) ボタンをクリックして場所を指定します。
    2. [デスクトップ] を選択します。
    3. 名前 (例: "Root") を指定します。

  1. [完了] をクリックします。
  2. 証明書パス内の各証明書について、手順 4. ~ 10. を繰り返します。

手順 2: ローカル コンピューターの信頼されたルート証明機関に各証明書を追加する
エクスポートされた各証明書は、ファーム内の各サーバー上にあるローカル コンピューターの信頼されたルート証明機関にインポートする必要があります。

  1. ファーム内のサーバーごとに、エクスポートされた証明書がローカル コンピューターの信頼されたルート証明機関に追加されている状態にします (証明書を最初のサーバーにエクスポートした後、ファーム内の各サーバーに証明書をコピーするのが簡単な方法です)。
  2. ローカルの証明書マネージャーを起動します。

a. [スタート]、[ファイル名を指定して実行] の順にクリックし、「MMC」と入力します。

b. [ファイル] (File)、[スナップインの追加と削除] (Add/Remove Snap-in) の順にクリックします。

c. [スナップインの追加と削除] (Add or Remove Snap-ins) ウィンドウで、[証明書] (Certificates) を選択し、[追加] (Add) をクリックします。

d. [証明書スナップイン] ウィンドウで、[コンピューター アカウント] を選択し、[次へ] をクリックします。

e. [ローカル コンピューター] を選択し、[完了] をクリックします。

f. [スナップインの追加と削除] ウィンドウに戻り、[OK] をクリックします。

g. コンソール ウィンドウの [証明書 (ローカル コンピューター)] (Certificates (Local Computer)) ノードを展開します。

h. [信頼されたルート証明機関] (Trusted Root Certification Authorities) を右クリックし、[すべてのタスク] (All Tasks)、[インポート] (Import) の順にクリックします。

i. 先ほどエクスポートしたルート証明書を参照し、[次へ] をクリックします。
j. 以降は最後まで既定値を選択し、[完了] をクリックします。インポートが正常に行われたことを示すメッセージが表示されるはずです。

証明書パス内の各証明書について、手順 h. ~ i. を繰り返します。

手順 3: 各証明書を SharePoint の管理された信頼関係に追加する

  1. 証明書をローカルにインストールした後は、証明書を SharePoint の管理された信頼関係に追加する必要があります。信頼はファーム全体で認識されるので、この操作が必要になるのはご使用のサーバーのうち 1 台のみです。各証明書を SharePoint のマネージ信頼に追加します。

a. SharePoint サーバーの全体管理を開き、[セキュリティ] (Security)、[信頼関係の管理] (Manage Trust) の順に選択します。

b. [信頼関係] リボンで [新規作成] を選択して、[信頼関係の確立] (Establish Trust Relationship) ウィンドウを開きます。
c. [全般設定] (General settings) で名前を指定します (例: RootCA、IntermediateLevel1、IntermediateLevel2)。
d. [信頼関係のルート証明書] (Root Certificate for the trust relationship) で、[参照] (Browse) をクリックし、先ほど作成した証明書を選択します。

e. [OK] をクリックします。

証明書パス内の各証明書について、手順 a. ~ e. を繰り返します。

  1. SharePoint Web フロントエンドで、IISReset を実行します。
    1. a. [スタート]、[ファイル名を指定して実行] の順にクリックし、「cmd」と入力します。
    2. 「IISReset」と入力し、Enter キーを押します。
  2. SharePoint リスト データ ソースや Excel Services データ ソースを作成して、ダッシュボード デザイナー データ ソースの作成のテストを行います。

付録 A: インポートした証明書のチェック

ときには、証明書が正常にインポートされたことや、反対に証明書がシステムから完全に削除されたことの確認が必要になる場合があります。これまでに何度か、レジストリで証明書ストアから削除しない限りシステムから完全に削除されない、面倒な証明書がありました。

  1. Regedit を起動します。
    1. [スタート] ボタンをクリックします。
    2. [ファイル名を指定して実行] を選択します。
    3. 「Regedit」と入力します。
  2. HKEY_LOCAL_MACHINE と HKEY_LOCAL_USER の両方について、SOFTWARE\Microsoft\SystemCertificates\My\Certificates をチェックします。
  3. 証明書の拇印の値と、証明書コンテナーに表示されているノードを比較します。

付録 B: 便利な PowerShell コマンド

PowerShell による証明書のチェック

以下のスクリプトは、SharePoint の管理された信頼関係にインストールされている証明書のリストをエクスポートします。その結果は、ローカル証明書に追加された証明書との比較対照に使用できます。

ローカル証明機関に追加された証明書のチェック

チェックに関するスクリプトはこれだけです。特に複雑なコードではありませんが、すべてをスムーズに動作させるためには、いくらか手を加える必要があります。

John Fulton
Microsoft サポート エスカレーション エンジニア
(SharePoint、Office BI)

これはローカライズされたブログ投稿です。原文の記事は、「Leveraging PerformancePoint in HTTPS Enabled Sites」をご覧ください。