我一直在尝试进行证书固定工作,我注意到最初传递给UserState中定义的函数的verify_fun变量。证书有效时将返回此变量,但是我在文档中找不到其他任何提及。

我想存储证书中的一些信息,以便以后对客户端进行身份验证。我可以在UserState中传递这些信息,然后在我的网络服务器(牛仔)中检索它们吗?还是仅仅通过验证verify_fun中的证书并从牛仔内部访问证书信息就更好了?

最佳答案

路径验证后,您将无法获取UserState的最终值。此参数仅用于将信息传递到路径验证循环的下一个阶段:对于证书链中发现的每个扩展和问题,verify_fun将被调用一次。首先,它将获得初始的UserState作为参数,并且在每个步骤中,它都可以返回新的UserState以用于下一步。

因此,您应该仅将verify_fun用于路径验证。您将不得不在以后的阶段再次检索客户端的证书,以从中收集和存储任何数据。

10-04 13:46