Openssl中的证书验证比较复杂,实现源码在x509/x509_vfy.c中,主要有两个函数:X509_verify_cert和internal_verify。X509_verify_cert主要将所有的证书信息进行排序,构造出一个有序的证书链,然后调用internal_verify函数来验证证书。internal_verify是openssl提供的一个内置的验证证书链的函数。如果用户通过X509_STORE_set_verify_func函数设置了X509_STORE_CTX的verify函数,将调用用户实现的verify函数而不会调用internal_verify。
如何用openssl函数验证证书,用户可以参考apps/verify.c。
参考文献
[1] rfc2459,Internet X.509 Public Key Infrastructure Certificate and CRL Profile