使用PHP curl請求https的時候出現錯誤“SSL certificate problem: self signed certificate in certificate chain”,這種情況是無法驗證客戶端根證書導致,解決辦法如下。
方法一
忽略證書驗證,在curl方法中添加以下代碼即可。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
缺點: 每個curl方法中都要添加上面的方法,有點麻煩。
方法二:
從curl官方網站,下載根證書:cacert.pem ,然后修改php.ini
中加入該證書,並重啟web服務。
#在php.ini中加入 [SSL] curl.cainfo = "D:\xampp\php\cacert.pem" openssl.cafile = "${curl.cainfo}"