我想在php中使用curl发送两个.crt证书。 我正在使用此代码。
$firstcalldata = "csv file data";
$target_url = www.example.com;
$ch = curl_init($target_url);
curl_setopt($ch, CURLOPT_VERBOSE, '1');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CAINFO,"C:/Users/admin/Desktop/CERT/PSCERT.pem");
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "C:/Users/admin/Desktop/CERT/PSCERT-C.crt");
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $firstcalldata);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/csv'));
$result = curl_exec($ch);
echo $result;
curl_close($ch);`
我还向$ target_url发送了一个csv文件。
但是我一直得到403 - 禁止访问:拒绝访问。
答案 0 :(得分:0)
你并没有真正说出你想要完成的事情,你只是在问一个非常奇怪的问题而没有答案。您的示例根本不发送.crt,它使用它来验证服务器的证书。并且CAINFO旨在指向一个包含完整包的文件(就像您可以在curl's caextract page获得的文件之一)
但是你禁用了VERIFYPEER和VERIFYHOST,所以你实际上并不需要任何CA证书!?
你到底想做什么?另请注意,如何获得403后意味着您已经通过TLS层进行了良好的沟通。