使用OpenSSL进行TLS 1.3双向认证时,客户端证书验证失败,如何排查?

我们在项目中实现了基于OpenSSL 1.1.1的TLS 1.3双向认证机制。服务器端配置了CA证书、服务器证书及私钥,客户端也拥有合法的CA签发证书。但在实际连接中,客户端握手失败,OpenSSL报错SSL alert number 42(证书未知或不受信任)。
已尝试的排查步骤:
1. 确认客户端证书未过期,且由服务器信任的CA签发。
2. 在服务器端通过SSL_CTX_load_verify_locations加载了CA证书,并设置SSL_VERIFY_PEER。
3. 使用openssl s_client测试时,若服务器不要求客户端证书,连接正常;一旦启用-verify选项则失败。
关键疑问:
- TLS 1.3的双向认证流程中,是否需额外处理证书扩展(如密钥用途、扩展密钥用途)?
- OpenSSL的证书验证回调中,如何输出更详细的验证错误信息(如具体哪些检查未通过)?
- 是否有工具或方法可逐层对比证书链的验证结果?
环境:Linux x86_64,OpenSSL 1.1.1g。期待有相关经验的朋友分享排查思路或调试技巧!

邀请回答 换一换
暂无数据
0 人关注

版权区

亲爱的用户欢迎您
侵犯版权/问题反馈
发送至邮箱:qitong@haihua.com.cn
Powered by 綦桐专业团队研发-luolitu.vip 0.7.1

网站备案/许可证号:鲁ICP备2021035806号

gotop
0 new message tips
title list