我一直在尝试进行证书固定工作,我注意到最初传递给UserState
中定义的函数的verify_fun
变量。证书有效时将返回此变量,但是我在文档中找不到其他任何提及。
我想存储证书中的一些信息,以便以后对客户端进行身份验证。我可以在UserState
中传递这些信息,然后在我的网络服务器(牛仔)中检索它们吗?还是仅仅通过验证verify_fun
中的证书并从牛仔内部访问证书信息就更好了?
最佳答案
路径验证后,您将无法获取UserState
的最终值。此参数仅用于将信息传递到路径验证循环的下一个阶段:对于证书链中发现的每个扩展和问题,verify_fun
将被调用一次。首先,它将获得初始的UserState
作为参数,并且在每个步骤中,它都可以返回新的UserState
以用于下一步。
因此,您应该仅将verify_fun
用于路径验证。您将不得不在以后的阶段再次检索客户端的证书,以从中收集和存储任何数据。