Windows の証明書ストアは(ほとんど)レジストリに保存されています。しかし、IE、Chrome、Safari/iTunes、OutlookなどはWindowsの証明書ストアを使用していますが、FirefoxやThunderbirdはNSSのクロスプラットフォーム証明書ストアを使用しています。また、Operaも独自の証明書ストアを使用しています。
Windowsの証明書ストアにアクセスしたい場合は、MicrosoftのCryptoAPIを使用してください。NSS の証明書ストアにアクセスしたい場合は、 NSS ライブラリ を使用します。
Windowsには証明書の「フォルダ」は存在しません。そのデータベースへの取得](http://en.wikipedia.org/wiki/Windows_Registry)への最も簡単な方法は、ちょうどあなたのスタート/実行ボックスに`certmgr.msc`を置くことです。
本当に好奇心があるなら、あなたは以下の実際のレジストリエントリを見つけることができます:
\SOFTWARE\Microsoft\SystemCertificates\
ユーザー固有の証明書のためのHKEY_CURRENT_USER
とマシン固有の証明書のためのHKEY_LOCAL_MACHINE
では、しかし、それらは読めないバイナリブロブになります。それはちょうど私が以前にリストアップしたMMCスナップインを使用することをお勧めします。
ここでは、場所の概要(レジストリキーとファイル)です:
ユーザーレベル(レジストリ):
HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates
. 現在のユーザーの設定証明書が含まれています。前の場所のように、しかし、これはGPO(グループポリシー)を展開したユーザーの証明書に対応しています。特定のユーザ証明書の設定に対応しています。各ユーザは、SID(Security Identifier)を持つレジストリにそのブランチを持っています。すべてのコンピュータユーザの設定証明書が含まれています。前の場所のように、しかし、これはGPOを展開したコンピュータ証明書に対応しています。
Active Directoryレベル(レジストリ):
HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates
:コンピュータ上のすべてのサービスの設定証明書が含まれています。アクティブディレクトリレベルで発行された証明書。
そして、Windowsの証明書ストアに対応するいくつかのフォルダとファイルがあります。
フォルダは隠されており、公開鍵と秘密鍵は別のフォルダにあります。
PowerShellにチャンスを与える:
Get-Childitem Cert:\currentUser -Recurse | Format-Table -AutoSize PSPath, FriendlyName, DnsNamelist