目录
1 背景
在使用浏览器访问https链接时,浏览器会自动请求网站的安全证书,并进行证书校验,以及(使用证书)参与后续的通道加密逻辑。
而使用curl(不管是curl.exe命令行工具,还是使用libcurl库)请求https时,在curl的标准逻辑里面,它也会使用类似浏览器的流程,进行证书校验和加密,此时这个证书校验流程对于使用者来说,可能是需要定制的(譬如不校验,标准校验,甚至双向校验东等)。
本文主要讨论通过设置libcurl的参数,来控制这个校验过程。
2 curl命令
2.1 忽略证书校验
curl --location "https://s.example.com/" --insecure
2.2 指定CA证书
curl --cacert "<path of ca.pem>"
3 libcurl控制参数(终端验证服务器)
3.1 CURLOPT_CAINFO
3.1.1 指定一个具体的CA证书路径(完整路径)
3.1.2 https://curl.se/libcurl/c/CURLOPT_CAINFO.html
3.1.3 e.g.