SL3_GET_SERVER_CERTIFICATE:证书验证失败

时间:2014-11-26 10:03:04

标签: php curl

我正在使用Repo脚本命令:

 curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

但在那之后我得到一个错误:

error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

我读了一些解决方案来解决这个问题,我得到了添加以下内容:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

但我想知道我可以添加此行的文件是哪个?请帮我!提前谢谢!

3 个答案:

答案 0 :(得分:1)

也许你的网络连接到git服务器被阻止!!!

答案 1 :(得分:0)

您可以将curl shell命令与--insecure选项一起使用:

curl --insecure https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

来自curl手册页:

-k/--insecure
              (SSL)  This  option explicitly allows curl to perform "insecure"
              SSL connections and transfers. [...]

答案 2 :(得分:0)

在进行cURL调用时,您可以在PHP文件中添加VERIFYPEER,例如

<?php 
// create curl resource 
$ch = curl_init(); 

// set url 
curl_setopt($ch, CURLOPT_URL, "example.com"); 

//return the transfer as a string 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

// set verifypeer to false
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

// $output contains the output string 
$output = curl_exec($ch); 

// close curl resource to free up system resources 
curl_close($ch);      
?>

当您从命令行运行curl时,verifypeer将无法正常工作,您需要使用--insecure

curl --insecure https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

更好的解决方案是尝试确保安装了SSL证书包。例如。在CentOS上:

yum install ca-certificates

如果这不起作用,您可以从http://curl.haxx.se/ca/cacert.pemhttps://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt手动下载并添加捆绑包

curl_setopt($ch, CURLOPT_CAPATH, 'ca-bundle.crt');

或通过命令行

curl --cacert /path/to/ca-bundle.crt https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo