背景:
fiddler抓包时发现我们开发的软件https的包抓不到。baidu这种网页说证书不对(hostname error)。
我的同事之前搞过,请教了下,可以通过这种方式来实现。
1、给curl设置代理。
curl_easy_setopt(m_pCurl, CURLOPT_PROXY, "127.0.0.1:8888");
这个127.0.0.1:8888就是打开了fiddler之后,fiddler自己设置的代理ip,也就是本地的地址,端口8888。
2、设置不验证证书。
也就是把
curl_easy_setopt(m_pCurl, CURLOPT_SSL_VERIFYPEER, 1L);
curl_easy_setopt(m_pCurl, CURLOPT_SSL_VERIFYHOST, 2L);
改为:
curl_easy_setopt(m_pCurl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(m_pCurl, CURLOPT_SSL_VERIFYHOST, 0L);
如果不这么做,那么curl的请求也会因为fiddler自己的证书不信任导致请求失败。
还有一种做法比较麻烦:就是把fiddler的证书放到软件的目录下,然后设置curl信任该证书。