IISにインポートしたサーバー証明書に秘密鍵がなくバインドの編集で表示されない

IISにインポートしたサーバー証明書秘密鍵がなくバインドの編集で表示されないという事象がありました。もともとやり方やその考え方を知らなかったのは理由なんですが、二つの証明書をIISでインポートした際に、秘密鍵が一つのサーバー証明書で表示されませんでした。


あれっと思い、削除をしてインポートしなおしたら、なんとどちらも秘密鍵が表示されなくなりました。これは、、、と思って調べたらありました。


マイクロソフトの有用な記事。

 

インポート済みの証明書が Lync/SfB Server で割り当て候補として表示されない。

https://blogs.msdn.microsoft.com/lync_support_team_blog_japan/2016/03/22/privatekey/ 

 

内容はIISではないですが、まさに今回遭遇した内容と一致します。

 


証明書ストア内に証明書がインポートされているにも関わらず、証明書の割り当てができない場合は、証明書に証明書の秘密鍵が保持されていない場合がほとんどだそうです。


そして、今回、削除したことによって起きた事象がこちら。

 

「一回証明書をインポートした後、一度証明書ストアから削除し、再度インポートした」


削除して再度インポートするとこうなるようです。また、復旧手順もありました。

【手順】
(1) mmc から [証明書(ローカルコンピューター)] --> [個人] ストアを開きます。
(2) [個人] ストアから、新証明書をダブルクリックで開き、証明書の画面の [詳細] タブを開きます。
(3) 「シリアル番号」を選択し、下のウィンドウに表示された値をコピーしておきます。
(4) 管理者権限のコマンドプロンプトを起動し、以下のコマンドを実行します。

certutil -repairstore my "コピーしたシリアル番号"
例: certutil -repairstore my "11 22 33 44 55 66 77"
※シリアル番号の冒頭のスペースは削除してから実行ください。


これでなんとか事なきを得ました。基本的にはCSRを作成したサーバーが秘密キーを保持しているので、別のサーバに移動したい場合は、秘密キーを合わせてエクスポートしてあげる必要があります。