系统存储位置

系统存储是由一个或多个物理同级存储组成的集合。 对于每个系统存储,都有预定义的物理同级存储。 在 CERT_SYSTEM_STORE_CURRENT_USER 打开系统存储(例如 MY)后,存储提供程序调用 CertOpenStore 以打开系统存储集合中的每个物理存储。 在打开过程中,每个物理存储都使用 CertAddStoreToCollection 添加到系统存储集合中。 这些物理存储中的所有证书都可以通过逻辑系统存储集合获得。

对于每个系统存储位置,预定义的系统存储为:

  • MY
  • Root
  • 信任
  • CA

在 CERT_SYSTEM_STORE_CURRENT_USER 中,还有一个预定义的 UserDS 存储。 计划为此位置创建一个智能卡商店。

下面是系统存储,后跟进一步说明:

CERT_SYSTEM_STORE_CURRENT_USER

CERT_SYSTEM_STORE_CURRENT_USER系统存储位于以下注册表位置:

HKEY_CURRENT_USER
   Software
      Microsoft
         SystemCertificates

与这些系统存储关联的预定义物理存储如下所示。

系统存储 物理存储
MY .默认
Root .Default.LocalMachine
.智能卡
信任 .Default.GroupPolicy
.LocalMachine
CA .Default.GroupPolicy
.LocalMachine
UserDS .UserCertificate

 

CERT_SYSTEM_STORE_LOCAL_MACHINE

CERT_SYSTEM_STORE_LOCAL_MACHINE系统存储位于以下注册表位置:

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         SystemCertificates

预定义的物理存储与这些系统存储相关联,如下所示。

系统存储 物理存储
MY .默认
Root .Default.AuthRoot
.GroupPolicy
.企业
.智能卡
信任 .Default.GroupPolicy
.企业
CA .Default.GroupPolicy
.企业

 

CERT_SYSTEM_STORE_CURRENT_SERVICE

CERT_SYSTEM_STORE_CURRENT_SERVICE系统存储位于以下注册表位置:

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Cryptography
            Services
               ServiceName
                  SystemCertificates

与这些系统存储关联的预定义物理存储如下所示。

系统存储 物理存储
MY .默认
Root .Default.LocalMachine
信任 .Default.LocalMachine
CA .Default.LocalMachine

 

CERT_SYSTEM_STORE_SERVICES

CERT_SYSTEM_STORE_SERVICES系统存储位于以下注册表位置:

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Cryptography
            Services
               ServiceName
                  SystemCertificates

与这些系统存储关联的预定义物理存储如下所示。

系统存储 物理存储
ServiceName\MY .默认
ServiceName\Root .Default.LocalMachine
ServiceName\Trust .Default.LocalMachine
ServiceName\CA .Default.LocalMachine

 

CERT_SYSTEM_STORE_USERS

CERT_SYSTEM_STORE_USERS系统存储位于以下注册表位置:

HKEY_USERS
   UserName
      Software
         Microsoft
            SystemCertificates

与这些系统存储关联的预定义物理存储如下所示。

系统存储 物理存储
userid\MY .Default.LocalMachine
userid\Root .Default.LocalMachine
userid\Trust .Default.LocalMachine
userid\CA .Default.LocalMachine

 

CERT_SYSTEM_CURRENT_USER_GROUP_POLICY

CERT_SYSTEM_CURRENT_USER_GROUP_POLICY系统存储位于以下注册表位置:

HKEY_CURRENT_USER
   Software
      Policy
         Microsoft
            SystemCertificates

CERT_SYSTEM_LOCAL_MACHINE_GROUP_POLICY

CERT_SYSTEM_LOCAL_MACHINE_GROUP_POLICY系统存储位于以下注册表位置:

HKEY_LOCAL_MACHINE
   Software
      Policy
         Microsoft
            SystemCertificates

CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE

CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE包含企业中跨域共享并从全局企业目录下载的证书。 若要同步客户端的企业存储,企业目录每 8 小时轮询一次,并在后台自动下载证书。

与这些系统存储关联的预定义物理存储如下所示。

系统存储 物理存储
MY .默认
Root .默认
信任 .默认
CA .默认

 

备注

可以使用 CertRegisterPhysicalStore 将其他物理存储与系统存储相关联。

CERT_SYSTEM_STORE_SERVICE和CERT_SYSTEM_STORE_USERS存储是通过在传递给 pvPara 的字符串中使用服务或用户名(如 ServiceName\Trust 或 )作为前缀来打开的 。默认\MY。 CERT_SYSTEM_STORE_SERVICES或CERT_SYSTEM_STORE_USERS位置可以使用当前服务或用户的文本 安全标识符 (SID) 在CERT_SYSTEM_CURRENT_SERVICE或CERT_SYSTEM_STORE_CURRENT_USER中打开相同的存储。

在计算机启动或用户登录期间,CERT_SYSTEM_STORE_USER_GROUP_POLICY中的存储和网络设置中的CERT_SYSTEM_LOCAL_MACHINE_GROUP_POLICY会从组策略模板 (GPT) 下载到客户端计算机。 当管理员在域服务器上更改 GPT 时,启动或登录后,可以在客户端计算机上更新这些存储。 CertControlStore 函数允许在上述任一位置的存储发生更改时通知应用程序。

可以远程打开以下系统存储位置:

  • CERT_SYSTEM_STORE_LOCAL_MACHINE
  • CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY
  • CERT_SYSTEM_STORE_SERVICES
  • CERT_SYSTEM_STORE_USERS

系统存储位置远程打开,方法是在传递给 pvPara 的字符串中将存储名称作为计算机名称的前缀。 远程系统存储名称的示例包括:

  • ComputerName\
  • \\ ComputerName\
  • ComputerName\ServiceName\信任
  • \\ ComputerName\ServiceName\信任