SharePoint STS 証明書の CRL チェックのためにサイトが遅くなる

現象

SharePoint Foundation 2010 または SharePoint Server 2010 でクレームベース認証を使用する web アプリケーションがあることを前提としています。 SharePoint サーバーがインターネットにアクセスできないか、またはサーバーがファイアウォールによって保護されていますが、制限付きのポートが開いています。 このような状況では、ユーザーが特定の操作 (サイトへのログインや検索の実行など) を実行すると、断続的に長い遅延が発生します。 ユーザーがこれらの操作を実行したときに、HTTP タイムアウトが発生することもあります。

原因

SharePoint は、証明書を使用して、セキュリティトークンサービス (STS) によって発行されたセキュリティトークンに署名します。 すべての証明書と同様に、STS 証明書の有効性を定期的に検証して、証明書が失効していないことを確認する必要があります。 既定では、チェーン内のルート証明書は、SharePoint サーバーの信頼されたルート証明機関ストアに追加されません。 そのため、証明書の証明書失効リスト (CRL) チェックはインターネット経由で行われます。 何らかの理由でオンライン CRL サーバーが SharePoint サーバーから到達できない場合、既定では15秒後に操作がタイムアウトします。 CRL 検証が15秒後に失敗した場合でも、遅延後に SharePoint ページが表示されたままになる可能性があります。

SharePoint サーバーで CAPI2 イベントログを有効にすることによって、証明書の検証エラーを追跡できます。 CAPI2 のイベントログ出力が有効になっていて、インターネット証明書の検証が失敗すると、多くの場合、CAPI2 イベントログに次のエラーメッセージが表示されます。

  • チェーンエラーの作成

    イベント ID:11
    タスクカテゴリ: チェーンの構築
    subjectName (イベントの詳細から取得): SharePoint Security Token Service

  • ネットワークエラーからオブジェクトを取得する

    イベント ID:53
    タスクカテゴリ: ネットワークからオブジェクトを取得する

    URL (イベントの詳細から取得):https://www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab

CAPI2 ログを有効にする方法については、「詳細情報」セクションを参照してください。

解決方法

この問題を解決するには、次のいずれかの回避策を実行します。

回避策1

信頼されたルート証明機関ストアに SharePoint ルート証明機関の証明書をインストールします。 ルート証明書がローカル証明書ストアに追加されると、証明書の検証はインターネットを介して実行されなくなります。 次の手順では、ローカルストアで証明書を検索することによって BuildChain が成功するため、ネットワークからのオブジェクトの取得が不要になります。 ファーム内の各 SharePoint サーバーで、次の手順を実行して、ルート証明書をローカル証明書ストアに追加する必要があります。

  1. SharePoint のルート証明機関証明書を物理ファイル (.cer) としてエクスポートします。 SharePoint 2010 管理シェルを管理者として起動し、次の Windows PowerShell コマンドを実行します。

    $rootCert = (Get-SPCertificateAuthority).RootCertificate   
    $rootCert.Export("Cert") | Set-Content C:\SharePointRootAuthority.cer -Encoding byte
    

    メモ これにより、SharePoint の内部ルート証明書 (.cer ファイル) がドライブ C にエクスポートされます。このファイルは、PowerShell コマンドを再度実行することなく、ファーム内のすべてのサーバーにコピーして使用してインポートすることができます。

  2. SharePoint のルート証明機関の証明書を [信頼されたルート証明機関ストアにインポートします。 SharePoint のルート証明機関証明書を信頼されたルート証明機関ストアに追加するには、次の手順を実行します。

    メモこれらの手順を完了するには、「管理者」が最低限必要なグループメンバーシップです。

    1. [スタート] をタップまたはクリックして、[検索開始] に「mmc」と入力し、enter キーを押します。
    2. [ファイル] メニューの [スナップインの追加と削除] をクリックします。
    3. [使用可能なスナップイン] の下で、[証明書] をクリックし、[追加] をクリックします。
    4. [このスナップインは常に証明書を管理します] で、[コンピューターアカウント] を選択し、[次へ] をクリックします。
    5. [ローカルコンピューター] を選択し、[完了] をクリックします。
    6. コンソールに追加するスナップインがない場合は、[ OK] をクリックします。
    7. コンソールツリーで、[証明書] をダブルクリックします。
    8. [信頼されたルート証明機関] ストアを右クリックします。
    9. [すべてのタスク]、[インポート] の順にクリックして証明書をインポートし、証明書のインポートウィザードの手順を実行します。

回避策2

SharePoint サーバーのルート証明書の自動更新を無効にします。 これを行うには、次の手順を実行します。

  1. ローカルグループポリシーエディターの [コンピューターの構成] ノードで、[ポリシー] をダブルクリックします。
  2. [Windows の設定] をダブルクリックし、[セキュリティの設定] をダブルクリックし、[公開キーのポリシー] をダブルクリックします。
  3. 詳細ウィンドウで、[証明書パス検証の設定] をダブルクリックします。
  4. [ネットワークの取得] タブをクリックし、[これらのポリシーの設定を定義する] チェックボックスをオンにして、[ Microsoft ルート証明書プログラムで証明書を自動的に更新する (推奨) ] チェックボックスをオフにします。
  5. [ OK] をクリックし、ローカルグループポリシーエディターを閉じます。
  6. Gpupdate/force を実行して、ポリシーが直ちに有効になるようにします。

メモ自動更新が無効になっている場合は、新しいリリースを監視し、必要に応じて証明書の信頼を手動で更新する必要があります。

ルート証明書の自動更新を無効にする場合の影響

自己署名証明書を使用していて、自分で管理しているため、SharePoint に特定の影響はありません。 SharePoint 証明書には有効期限がありますが、これを監視して管理者に対して更新または再ロールするように警告する正常性ルールがあります。

考慮すべき主な側面は、コンピューターで使用されている他の証明書 (SSL 証明書、ダウンロードパッケージを信頼する証明書、より安全なポリシーなど) に対して、[信頼されたルート証明機関] ストア内の証明書にチェーンされた証明書から発行されるものです。

詳細情報

イベントビューア UI から CAPI2 ログを有効にして保存する

  1. イベント ビューアーを開きます。 イベント ビューアを開くには、[スタート] ボタン、[コントロール パネル] の順にクリックし、[管理ツール][イベント ビューア] の順にダブルクリックします。
  2. [ユーザーアカウント制御] ダイアログボックスが表示された場合は、表示されているアクションが実行内容になっていることを確認してから、[続行] をクリックします。
  3. コンソールウィンドウで、[イベントビューアー] を展開し、[アプリケーションとサービスログ]、[ Microsoft]、[ Windows] の順に展開し、[ CAPI2] を展開します。
  4. これで、次の操作を実行できます。
    • CAPI2 のログ出力を有効にするには、[操作] を右クリックし、[ログの有効化] を選択します。

    • ログをファイルに保存するには、[操作] を右クリックし、[イベントに名前を付けて保存] を選択します。 ログファイルは、EVTX 形式 (イベントビューアーで開くことができます) または XML 形式で保存できます。

    • CAPI2 のログ出力を無効にするには、[操作] を右クリックし、[ログを無効にする] を選択します。

    • 問題の再現を試みる前にログにデータが存在する場合は、ログをクリアすることをお勧めします。 これにより、保存されたログから収集される問題のシナリオに関連するデータのみが許可されます。 ログを消去するには、[操作] を右クリックし、[ログのクリア] を選択します。

    • CAPI2 診断では、ログのサイズが急速に増加し、関連するイベントをキャプチャするためにログサイズを 4 mb 以上に増やすことをお勧めします。 ログサイズを増やすには、[操作] を右クリックし、[プロパティ] を選択します。 ログのプロパティで、ログの最大サイズを大きくします。

      メモイベントログの既定のサイズは 1 MB です。

さらにヘルプが必要ですか? SharePoint コミュニティにアクセスしてください。