openssl X509\u verify\u cert()是否验证证书中的签名?
openssl API是否验证证书中的RSA签名 据我所知,API只检查证书有效性(如日期检查和所有) 有人请澄清一下吗?openssl X509\u verify\u cert()是否验证证书中的签名?,c,linux,openssl,C,Linux,Openssl,openssl API是否验证证书中的RSA签名 据我所知,API只检查证书有效性(如日期检查和所有) 有人请澄清一下吗?X509\u verify\u cert()基本上检查证书的有效性。这包括验证签署了属于CAs的证书的签名是否有效并且是否有效——它将像这样处理整个链 但是,它不会验证给定的RSA签名是否有效——尽管它验证RSA签名是其工作的一部分,但您不应该使用它来验证 广义上讲,它类似于在浏览SSL站点时出现证书错误时运行的功能。API X509\u verify\u cert()基于X
X509\u verify\u cert()
基本上检查证书的有效性。这包括验证签署了属于CAs的证书的签名是否有效并且是否有效——它将像这样处理整个链
但是,它不会验证给定的RSA签名是否有效——尽管它验证RSA签名是其工作的一部分,但您不应该使用它来验证
广义上讲,它类似于在浏览SSL站点时出现证书错误时运行的功能。API X509\u verify\u cert()基于X509\u存储结构中设置的验证标志u进行验证。
使用此API,您可以验证证书1.有效期
2.发卡机构(信任路径)
2.1中级证书到期,
2.2中间证书信任链,
2.3中间证书撤销,
3.根据CRL撤销证书
3.1 CRL到期日
3.2 CRL信任路径
(注意:在store_ctx变量中验证CRL u至少需要一个证书)
4.信任链的深度
5.证书的签名
x509_vfy.h文件中提到了不同验证的标志
/* Send issuer+subject checks to verify_cb */
#define X509_V_FLAG_CB_ISSUER_CHECK 0x1
/* Use check time instead of current time */
#define X509_V_FLAG_USE_CHECK_TIME 0x2
/* Lookup CRLs */
#define X509_V_FLAG_CRL_CHECK 0x4
/* Lookup CRLs for whole chain */
#define X509_V_FLAG_CRL_CHECK_ALL 0x8
/* Ignore unhandled critical extensions */
#define X509_V_FLAG_IGNORE_CRITICAL 0x10
/* Disable workarounds for broken certificates */
#define X509_V_FLAG_X509_STRICT 0x20
/* Enable proxy certificate validation */
#define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40
/* Enable policy checking */
#define X509_V_FLAG_POLICY_CHECK 0x80
/* Policy variable require-explicit-policy */
#define X509_V_FLAG_EXPLICIT_POLICY 0x100
/* Policy variable inhibit-any-policy */
#define X509_V_FLAG_INHIBIT_ANY 0x200
/* Policy variable inhibit-policy-mapping */
#define X509_V_FLAG_INHIBIT_MAP 0x400
/* Notify callback that policy is OK */
#define X509_V_FLAG_NOTIFY_POLICY 0x800
/* Extended CRL features such as indirect CRLs, alternate CRL signing keys */
#define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000
/* Delt1a CRL support */
#define X509_V_FLAG_USE_DELTAS 0x2000
/* Check selfsigned CA signature */
#define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000