CertUtil: キー セットがありません。0x80090016エラー certutil -repairstoreで秘密キーの紐づけを修復

最近はセキュリティが厳しくなってきて社内でも暗号化通信が必要という感じになってきましたね。ただ、通信を暗号化するとパケットキャプチャなどの切り分けが難しくなるので、インフラエンジニアにとってはさらにトラブルシューティングが難しくなるかもしれません。

 

最近、CA局に関する作業をしていて久しぶりに自宅で検証機をたてて検証をしています。

 

証明書のバージョンアップ作業などの検証をしていて秘密キーの紐づけがおかしくなった際のコマンド実行例です。ADCSは自宅に構築した検証用の2012 R2で構築したADCSで実施しています。


まず「保存されたキー セットがありません」が表示されています。

 

PS C:\CA> certutil -store my test-CA
my "個人"
================ 証明書 0 ================
シリアル番号: 4c135f274d781daf4f75b45b708exxxx
発行者: CN=test-CA, DC=test, DC=net
この日以降: 2019/10/15 21:08
この日以前: 2024/10/15 21:18
サブジェクト: CN=test-CA, DC=test, DC=net
CA バージョン: V0.0
署名は公開キーと一致します
ルート証明書: サブジェクトと発行者は一致します
Cert ハッシュ(sha1): 4e 7b 23 9b 8c 04 8b 40 14 0a ee 81 0d ee 95 46 1b xx xx xx
キー コンテナー = test-CA
プロバイダー = Microsoft Enhanced Cryptographic Provider v1.0
保存されたキー セットがありません
暗号化のテストに合格しました
CertUtil: -store コマンドは正常に完了しました。

 

 

その為、削除コマンドもエラーが出力されました。

 

PS C:\CA> certutil -csp "Microsoft Enhanced Cryptographic Provider v1.0" -delkey test-CA
CertUtil: -delkey コマンド エラーです: 0x80090016 (-2146893802 NTE_BAD_KEYSET)
CertUtil: キー セットがありません。


修復コマンドを実行します。以下のように「保存されたキー セットがありません」が表示されません。CA証明書のシリアル番号を指定します。

 

PS C:\CA> certutil -repairstore my 4c135f274d781daf4f75b45b708exxxx
my "個人"
================ 証明書 0 ================
シリアル番号: 4c135f274d781daf4f75b45b708exxxx
発行者: CN=test-CA, DC=test, DC=net
この日以降: 2019/10/15 21:08
この日以前: 2024/10/15 21:18
サブジェクト: CN=test-CA, DC=test, DC=net
CA バージョン: V0.0
署名は公開キーと一致します
ルート証明書: サブジェクトと発行者は一致します
Cert ハッシュ(sha1): 4e 7b 23 9b 8c 04 8b 40 14 0a ee 81 0d ee 95 46 1b xx xx xx
キー コンテナー = {1F4C4EE1-A18C-4BBA-9BF3-DEFCFDA2C3DE}
一意なコンテナー名: 85e75b2a37dac8aedd4b3e8089ff41a4_d8413d62-1d34-42dc-bef0-498xxxxc15a0
プロバイダー = Microsoft Enhanced Cryptographic Provider v1.0
署名テストに合格しました
CertUtil: -repairstore コマンドは正常に完了しました。

 

「CertUtil: -repairstore コマンドは正常に完了しました。」で無事完了しました。CA局の作業は専門知識としっかりと検証が必要ですね。