コレクション ストア
証明書の数が、証明書失効リスト (CRL)、およびユーザーのコレクション内の証明書信頼リスト(CTL)増加すると、それらの証明書の編成が問題になります。 考えられる解決策の 1 つは、異なる種類の証明書を保持するために個別の証明書ストアを作成することです。 このソリューションでは、アプリケーションが特定の証明書を検索するために複数の異なるストアを検索する必要がある場合があるため、新しい問題が発生します。 論理ストアまたはコレクション ストアを使用すると、この問題が解決されます。
論理ストア とコレクション証明書ストアは、1 つのストアとしてアプリケーションに表示される物理ストアのグループです。 論理ストアまたはコレクション ストアのすべてのメンバー ストアは、CertFindCertificateInStoreまたは CertEnumCertificatesInStoreへの 1 回の関数呼び出しで検索または列挙できます。
論理ストアまたはコレクション ストアを使用すると、紙のレコードでは実現が困難な柔軟性も提供されます。 1 つの物理ストア内の証明書は、複数の異なる論理グループのメンバーである必要がある場合があります。 したがって、個々の物理ストアは、次の図に示すように、複数の論理ストアまたはコレクション ストアのメンバーにすることができます。
コレクションストア
この図は、次の基本的な論理証明書ストアの概念を示しています。
- コレクション証明書ストアには、そのコレクション ストアの最初のポインター ブロックへのポインターがあります。
- コレクション ストアの各ポインター ブロックには、兄弟ストアへのポインターと、コレクションの次のポインター ブロックへのポインターがあります。
- コレクション内の各兄弟ストアは、単純な物理証明書ストアです。
- 単純な証明書ストアは、さまざまなコレクション ストアのメンバー兄弟ストアにすることができます。
- コレクション ストアに追加された証明書は、コレクション内の兄弟ストアのいずれかに物理的に追加されます。
- 兄弟ストア内の証明書には、兄弟ストアがメンバーであるコレクション ストアからアクセスできます。
コレクション ストアは、CertOpenStore を使用してコレクション ストアを開き、CertAddStoreToCollection を使用して開いている兄弟ストアをコレクション ストアに追加することによって、アプリケーション内に構築されます。 兄弟ストアは、CertRemoveStoreFromCollection呼び出すことによってコレクション ストアから削除できます。