last error : SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate veri

9262 ワード

今日、捜狐が提供したメール群発システムのsdkで、メールを送信するテストをしたとき、ヒント:
last error : SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
sdkコードは以下の通りです.
 1  1 <?php
 2  2 send_mail();
 3  3 
 4  4 function send_mail() {
 5  5     $ch = curl_init();
 6  6 
 7  7     curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
 8  8     curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
 9  9 
10 10     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
11 11     curl_setopt($ch, CURLOPT_URL, 'https://sendcloud.sohu.com/webapi/mail.send.json');
12 12     // SendCloud , , 。
13 13     curl_setopt($ch, CURLOPT_POSTFIELDS,
14 14             array('api_user' => '[email protected]',
15 15               'api_key' => 'password',
16 16               'from' => '[email protected]',
17 17               'fromname' => 'SendCloud ',
18 18               'to' => '[email protected]',
19 19               'subject' => 'php  WebAPI ',
20 20               'html' => ' <a href="https://sendcloud.sohu.com">SendCloud</a>',
21 21               //'file1' => '@/path/to/ .png;filename= .png',
22 22               //'file2' => '@/path/to/ 2.txt;filename= 2.txt'
23 23             ));
24 24             // ssl 
25 25             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
26 26             curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
27 27 
28 28             $result = curl_exec($ch);
29 29 
30 30             if($result === false) // 
31 31             {
32 32                echo 'last error : ' . curl_error($ch);
33 33             }
34 34 
35 35             curl_close($ch);
36 36 
37 37             return $result;
38 38 }
39 39 ?>

エラーのプロンプト時にssl検証が失敗し、解決方法
 curl SSL 2 :

 、 host。

 curl_exec() 。 option

$ch = curl_init();

......

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

 

 、 。

 ssl , ssl 。

 ssl  

http://curl.haxx.se/ca/cacert.pem

   

curl  

   curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true); ;
   curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).'/cacert.pem');