Sitecore Azure 3.0を使って気づいたのですが、 Sitecore AzureのUIで証明書やpublishsettings ファイルをアップロードすると、アップロードした証明書はアプリケーションプール実行ユーザーの個人の証明書ストアにインポートされます。Sitecoreの場合、厄介なことに 既定でアプリケーションプールの実行ユーザーは NT Authority\NetworkService になります。

私の調べ方が悪いのかもしれませんが、ネットワークサービスの証明書ストアの情報を 証明書スナップインを使ってうまく表示する方法がわかりませんでした。なので、アプリケーションプールのユーザーの証明書ストアの個人(My)にインストールされた証明書の一覧を表示する機能と、個人(My)に証明書インポートする機能を持つWebアプリケーションをつくてみました。というか個人の証明書ストアに証明書をインポートするのではなく、ローカルコンピューターの証明書ストアにインポートしろよって話ですが。

Webアプリエーションは こちら からダウンロードしてください。 

1.Webアプリケーションの説明

上述したソースコード付きのWebアプリケーションのリンクをクリックしてください。WebアプリケーションをIIS上で使用するようにセットアップしてください。アプリケーションプールのユーザーをNetworkService 等、証明書を確認したり、インポートしたいユーザに設定します。アプリケーションは .NET 4.0 で動作確認しています。

MyCertificate.aspx にアクセスすると、下図のように アプリケーションプールのユーザーの証明書ストアの個人にインストールされた証明書の一覧を表示します。図では表示されていませんが、証明書の有効開始日、有効終了日の列もあります。

MyImport.aspx の画面を表示すると、 証明書ファイル(cer, pfx) をインポートすることができます。アップロードされた証明書はアプリケーションプールの実行ユーザーの証明書の個人にインストールされます。パスワードが設定されたpfxファイルをインポートする場合は パスワードを入力してアップロードボタンをクリックして下さい。

2.まとめ

説明は以上です。時間があれば、 Sitecore Azure 3.0 で使用する証明書を置き換える記事も記載と思います。