CURLOPT_CAPATH多证书场景疑问:curl是否会校验至找到有效证书?
curl 多证书在 CURLOPT_CAPATH 中的处理逻辑
首先明确:curl 并不会逐个校验 CURLOPT_CAPATH 目录中的所有证书来寻找可用项,它的校验逻辑是基于服务器返回的证书链,匹配目录中对应哈希命名的证书文件。
具体细节:
- 放置在
CURLOPT_CAPATH中的证书,需要通过c_rehash工具(或使用curl --create-dirs --capath <目录路径>命令)生成对应哈希值的软链接,curl 依靠这些哈希链接快速定位对应的信任证书,而非遍历目录内所有证书。 - 当供应商切换到新证书后,服务器会返回新的证书链,此时 curl 会根据新证书的哈希值,在
CURLOPT_CAPATH中查找对应的信任证书文件。只要新证书已放入目录并生成哈希链接,curl 就能正常完成校验。 - 目录中留存的旧证书不会干扰这个过程——因为 curl 只会匹配服务器返回证书对应的信任项,不会主动尝试本地所有证书。即使旧证书未过期,只要服务器不再返回旧证书链,curl 就不会去校验它。
内容的提问来源于stack exchange,提问作者Michael Hains
相关产品推荐
相关产品推荐

