0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

certutilでpkcs#12(クライアント証明書+秘密鍵)をTPMにインポートできない件

Last updated at Posted at 2023-12-31

はじめに

Windows11(23H2)の話です。pkcs#12形式のクライアント証明書+秘密鍵をTPMにインポートしてみようと思ったのですが,どうもうまくいきません。未来の自分のための作業記録です。

試した手順

  • オレオレ認証局を立てて,クライアント用の秘密鍵ファイルと証明書を作る
    手順は以下を参考にしました。ubuntu2004用の手順ですが,2204でも同じ手順です。

  • PKCS#12ファイルを作る
    秘密鍵ファイルとcrtファイルから,pkcs#12ファイルを作成します。手順は以下を参考にしました。出力ファイルはclient.p12にしました(拡張子がpfxではないですが気にしないでください)

  • Windows11にコピーする
    client.p12をscpコマンドなどで物理Windows11(TPM2.0入り)にコピーします。
    (ちなみに,proxmox上に仮想TPM付きでインストールしたWindows11も結果は同じでした)

  • pkcs#12をインポートする
    ユーザ権限でWindowsTerminalを起動し,以下のコマンドでインポートします。

PS C:\Users\***> certutil -user -csp TPM -p Password! -importPFX .\client.p12  NoExport
証明書 "client" がストアに追加されました。

CertUtil: -importPFX コマンドは正常に完了しました。

"-csp TPM"がTPM指定のオプション(のはず・・・)です。

結果

レジストリに保管されてしまいました。
image.png

管理者権限で certutil -TPMInfo を実行してみましたが,それらしき証明書はTPMの中には見当たりません。

他にも困っている人がいた?

ここのREADMEを見ると,やはりインポートができないようです。私と違って明確なエラーで失敗していました。ただこの方のすごいところは,TPMにインポートするためのコードを書いていらっしゃることです。すごい。

参考コマンド

CSP一覧を表示する。certutil -csplist

注意事項

certutilコマンドは実運用で非推奨だそうです。公式に注意事項として記載がありました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?