传递给 ssl verify_fun 函数的 UserState 变量是什么

What is the UserState variable passed to the ssl verify_fun function

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

我想存储证书中的一些信息,以便稍后对客户端进行身份验证。我可以只在 UserState 中传递这些信息,然后在我的网络服务器 (cowboy) 中检索它们吗?或者我最好只是验证 verify_fun 中的证书并从 cowboy 中访问证书信息?

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

所以您应该只使用 verify_fun 进行路径验证。您将不得不在稍后阶段再次检索客户端的证书,以从中收集和存储任何数据。