证书链

若要使用 证书 实现安全性,必须验证收到的每个证书的真实性和有效性。 这种验证取决于信任的概念和信任的委托:有关详细信息,请参阅 信任层次结构

每个证书都包含一个使用者字段,用于标识颁发证书的个人或组。 每个证书还包含一个颁发者字段,用于标识 证书颁发机构 (CA) 授权认证使用者的身份。

证书链由认证最终证书所标识的使用者所需的所有证书组成。 实际上,这包括最终证书、中间 CA 的证书以及链中各方信任的根 CA 的证书。 链中的每个中间 CA 在信任层次结构中保存一个级别上由 CA 颁发的证书。 根 CA 为自己颁发证书。

验证新接收证书的真实性和有效性的过程包括检查证书链中的所有证书,从原始的普遍受信任的 CA,通过任何中间 CA,一直检查刚收到的证书,称为结束证书。 仅当该证书链中的每个证书都正确颁发且有效时,才能信任新证书。

跟踪所有为新结束证书后备的证书可能会变得很麻烦。 因此, CryptoAPI 2.0 技术提供了自动创建支持任何给定最终证书的证书链的功能。 这些函数还检查并报告链中每个证书的有效性。

CryptoAPI 2.0 的链构建和检查功能使用链引擎来创建和验证证书链。 链引擎为证书链接基础结构定义存储命名空间和缓存分区。 CryptoAPI 2.0 为仅使用默认系统存储 ((例如 MY、Root、CA 和信任) )进行链构建和缓存的任何应用程序进程提供默认链引擎。 应用程序可以通过创建自己的链引擎来定义自己的存储命名空间或拥有自己的分区缓存。 若要实现最佳缓存行为,建议在应用程序启动时创建单个链引擎,并在应用程序的整个生命周期内使用该链引擎。

有关函数的列表,请参阅 证书链验证函数。 有关生成证书链并验证证书的程序,请参阅 示例 C 程序:创建证书链