TLS OpenSSL 证书验证

本文探讨了在TLS连接中,OpenSSL如何处理证书验证。当遇到不同场景,如缺少根证书、证书过期或签名错误时,OpenSSL会返回特定的验证错误代码。在某些情况下,OpenSSL不会通过Alert Message直接反馈失败,而需要应用层根据这些错误代码决定是否继续TLS流程。错误代码包括X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE, X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT等,并提到了可能接收到的Alert Message类型。" 86648408,5279151,Linux Kernel防火墙:iptables/netfilter详解,"['Linux防火墙', 'iptables配置', '网络安全', 'netfilter', 'Linux内核']
摘要由CSDN通过智能技术生成
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&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值