美文网首页
【TLS】验证对端证书流程

【TLS】验证对端证书流程

作者: Lady_Lee | 来源:发表于2021-04-26 14:16 被阅读0次

int verify_err = SSL_get_verify_result(client.ssl);
拿到非X509_V_OK结果后,需由客户端/服务端应用层来决定是否中止TLS流程,在一些场景下,openSSL库并不会通过Alert Message来反馈证书验证失败的结果,具体如下:
场景1:当服务端只发送合法的用户证书时,客户端设置根证书和二级证书:
r = SSL_CTX_load_verify_locations(k->ctx, "/data/user/0/cn.areful.openssl/files/TEST Root CA.pem", NULL); //根证书r = SSL_CTX_load_verify_locations(k->ctx, "/data/user/0/cn.areful.openssl/files/TEST USER CA.pem", NULL); //二级证书
verify_err = X509_V_OK

场景2:当服务端只发送合法的用户证书时,客户端仅设置根证书或者未设置根证书及二级证书:
verify_err = X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE

场景3:当服务端只发送合法的用户证书时,客户端仅设置二级证书:
verify_err = X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT

场景4:当服务端只发送过期的用户证书时,客户端仅设置根证书:
verify_err = X509_V_ERR_CERT_HAS_EXPIRED

场景5:当服务端发送证书链(包括根证书,二级证书,用户证书)时,客户端未设置根证书及二级证书:
verify_err = X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN

场景6:当服务端只发送经过篡改签名数据或者篡改时间的用户证书时,客户端设置根证书和二级证书:
verify_err = X509_V_ERR_CERT_SIGNATURE_FAILURE
且在客户端发完证书后,收到服务端发来的Alert Message:15030300020233

场景7:当服务端只发送经过篡改公钥数据的用户证书时,客户端设置根证书和二级证书:
verify_err = X509_V_ERR_CERT_SIGNATURE_FAILURE
且收到客户端发来的Alert Message:15030300020233

相关文章

网友评论

      本文标题:【TLS】验证对端证书流程

      本文链接:https://www.haomeiwen.com/subject/dpherltx.html