2014年4月 3日 (木)

SharePoint Web Services 証明書変更による不具合

SharePoint Server 2010 および SharePoint Server 2013 の Web フロントエンドの IIS サーバー上には SharePoint Web Services という名前のサイトが作成されています。

2014-04-03 11-16-17

このサイトはサービス アプリケーションが使用します。HTTP (TCP 32843)  および HTTPS (TCP 32844) を使用できるようになっていますが、HTTPS のバインドでは証明書が未選択になっています。

2014-04-03 11-16-29[バインド設定]

そこで手動で任意の証明書に変更すると、Secure Store Services が利用できないなど不具合が発生します。

たとえば Secure Store Services の管理ページにアクセスするとアクセス権限がないというメッセージが表示されてしまうようになります。

2014-04-03 11-17-38 [Secure Store Services にアクセスしたところ]

イベントログにも下記のようなエラーが記録されます。

2014-04-03 11-20-06

また、SharePoint Server 2013 の Access Services 2013 などにも影響がでてしまい、アプリケーションの利用、新規作成、削除などができなくなります。

対処方法

対処方法は netsh コマンドを使って、SharePoint 内部で使用している証明書に戻すことです。IIS管理マネージャーのGUIからは設定できません。

SharePoint サーバー上のローカル コンピュータの証明書管理コンソールを起動すると、[SharePoint]ノード内に 3つの証明書が既定で追加されていることがわかりますが、このうちの SharePoint Services の証明書を SharePoint Web Services サイトに設定しなおす必要があります。

2014-04-03 13-43-59

まず、SharePoint Web Services サイトに割り当てた証明書を削除するため次のコマンドを実行します。ちなみに、証明書の直接削除は GUI からは行えません。

netsh http delete sslcert ipport=0.0.0.0:32844

続いて SharePoint Serviceの証明書を追加するのですが、拇印とアプリケーションIDの指定が必要です。拇印については、証明書管理コンソールから証明書のプロパティを表示すれば確認できます。

2014-04-03 13-48-58

アプリケーションIDについては、SharePointでは基本共通となるため次のコマンドを実行し、取得します。


netsh http show sslcert

2014-04-03 13-52-18

以上を踏まえ、SharePoint Services の証明書の追加は次のようなコマンドを実行することになります。


netsh http add sslcert ipport=0.0.0.0:32844 certhash="c4ac6c96e4f24e1822dfb474ef2dcb7378038bc5" appid="{4dc3e181-e14b-4a21-b022-59fc669b0914}" certstorename=SharePoint

コマンド実行後に SharePoint Web Services サイトのバインドを確認すると、証明書は再び未選択のままとなりますが実際には設定されています。この後は、Secure Store Services 管理ページなどは問題なくアクセスできるようになるはずです。

参考資料

コメント