证书链

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

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

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

验证新收到的证书的真实性和有效性的过程涉及通过任何中间 CA 检查原始证书链中所有证书(通过任何中间 CA),向下检查刚刚收到的证书(称为结束证书)。 仅当该证书链中的每个证书都正确颁发且有效时,才能信任新证书。

跟踪所有备份新结束证书的证书可能会变得繁琐。 因此,CryptoAPI 2.0 技术提供的功能可自动创建任何给定的结束证书的证书链。 这些函数还会检查并报告链中每个证书的有效性。

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

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