※証明書ストア、システムストア、物理ストアの厳密な定義や違いを読み解けなかったため、マイクロソフトのリファレンスを意訳して言葉を使用しています。
証明書ストアの基礎
- 証明書は「ローカルコンピューター」または「現在のユーザー」と呼ばれる証明書ストア(システムストア)に保管されます。
- それぞれの証明書ストア(システムストア)は、さらに「個人」「信頼されたルート証明書機関」等の物理ストアに分かれています。
- 「ローカルコンピューター」の証明書ストアに格納した証明書は、全てのユーザに反映(継承)されます。
- 経験的に、よく使用されるシステムストアは次の2つだと思います。
- 「個人」(My):作業用・一時的な証明書、クライアント証明書認証のサイトにアクセスする際のクライアント証明書の格納先
- 「信頼されたルート証明書機関」(Root): 開発用の自己署名サーバ証明書、特定組織内で有効な証明書等の格納先
- 証明書ストアの実体はレジストリです。詳細はリファレンスを参照のこと。
- その他
証明書ストアの確認方法
- 管理ツールを使った証明書ストアの確認方法
「コンピューター証明書の管理」: certlm.mscコマンド
「ユーザー証明書の管理」: certmgr.mscコマンド - PowerShellを使った証明書ストアの確認方法
Get-ChildItemを使って、次のように物理ストア名を確認できます。
(この例では、現在のユーザの証明書ストアを確認するために”cert:\CurrentUser”を指定します。ローカルコンピューターの証明書ストアを確認する場合は代わりに”cert:\LocalMachine”を指定してください。)1234567891011121314151617> Get-ChildItem -Path cert:\CurrentUserName : TrustedPublisherName : ClientAuthIssuerName : RootName : UserDSName : CAName : REQUESTName : AuthRootName : MSIEHistoryJournalName : TrustedPeopleName : ADDRESSBOOKName : Local NonRemovable CertificatesName : MyName : SmartCardRootName : TrustName : Disallowed
物理ストアの一覧と物理名
- 管理ツール上の物理ストア表示名と物理ストア物理名の対応が分かりづらいので、参考を掲載します。
- 英語版・日本語版の管理ツールの画面比較
- 画面比較でも分かりづらいので、実際に試行錯誤して調べた結果です。
(管理ツールにて、名前の異なる証明書を各ストアにインストールし、各証明書がどの物理ストアに格納されたかをPowerShellで確認しました。)管理ツールでの物理ストア表示名(英語) 物理ストア物理名 備考 個人
(Personal)My 信頼されたルート証明機関
(Trusted Root Certificate Authorities)Root エンタープライズの信頼
(Enterprise Trust)Trust 中間証明機関
(Intermediate Certification Authorities)CA 他のストアにある証明書も見える Active Directory ユーザー オブジェクト
(Active Directory User Object)UserDS 信頼された発行元
(Trusted Publishers)TrustedPublisher 信頼されていない証明書
(Untrusted Certificates)Disallowed サード パーティ ルート証明機関
(Third-Party Root Certification Authorities)AuthRoot 信頼されたユーザー
(Trusted People)TrustedPeople クライアント認証発行者
(Client Authentication Issuers)ClientAuthIssuer ほかの人
(Other People)ADDRESSBOOK Local NonRemovable Certificates
(Local NonRemovable Certificates)Local NonRemovable Certificates MSIEHistoryJournal
(MSIEHistoryJournal)MSIEHistoryJournal 証明書の登録要求
(Certificate Enrollment Requests)REQUEST スマート カードの信頼されたルート
(Smart Card Trusted Roots)SmartCardRoot
- 英語版・日本語版の管理ツールの画面比較
証明書一覧と内容の確認
- 証明書ストアに格納される証明書の一覧は次のように確認できます。
例えば、「現在のユーザ」(CurrentUser)の「信頼されたルート証明機関」(Root)にある証明書一覧を取得する場合は、-Pathに”Cert:\CurrentUser\Root”を指定します。1234567> Get-ChildItem -Path Cert:\CurrentUser\RootThumbprint Subject---------- -------CDD4EEAE6000AC7F40C3802C171E30148030C072 CN=Microsoft Root Certi...BE36A4562FB2EE05DBB3D32323ADF445084ED656 CN=Thawte Timestamping ...... - 例えば、上記の証明書一覧の先頭にある証明書(Thumbprint: CDD4EEA…030C072)を確認する場合は、”\CurrentUser\Root\CDD4EEA…030C072″を指定します。12345678> Get-ChildItem -Path Cert:\CurrentUser\Root\CDD4EEA...030C072 | Select *PSPath : Microsoft.PowerShell.Security\Certificat...PSParentPath : Microsoft.PowerShell.Security\Certificat...PSChildName : CDD4EEAE6000AC7F40C3802C171E30148030C072PSDrive : CertPSProvider : Microsoft.PowerShell.Security\Certificate...
リンク