Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GoDaddy的PHP cURL SSL问题:SSL证书问题:无法获取本地颁发者证书_Php_Ssl_Curl - Fatal编程技术网

GoDaddy的PHP cURL SSL问题:SSL证书问题:无法获取本地颁发者证书

GoDaddy的PHP cURL SSL问题:SSL证书问题:无法获取本地颁发者证书,php,ssl,curl,Php,Ssl,Curl,我对GoDaddy的新SSL证书有问题,以下是我的代码: <?php $url = "https://myurl.com"; $ch = curl_init($url); $certificate_location = "ca-bundle.crt"; // modify this line accordingly (may need to be absolute) curl_setopt($ch, CURLOPT_CAINFO, $certificate_location); curl

我对GoDaddy的新SSL证书有问题,以下是我的代码:

<?php
$url = "https://myurl.com";
$ch = curl_init($url);

$certificate_location = "ca-bundle.crt"; // modify this line accordingly (may need to be absolute)
curl_setopt($ch, CURLOPT_CAINFO, $certificate_location);
curl_setopt($ch, CURLOPT_CAPATH, $certificate_location);

curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($ch, CURLOPT_FORBID_REUSE, TRUE);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);

$result = curl_exec($ch);
$errtext = curl_error($ch);
$errnum = curl_errno($ch);

var_dump($result);
var_dump($errtext);
var_dump($errnum);

替换下面的curl调用行

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE)

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE)

CURLOPT_SSL_VERIFYPEER:此选项告诉cURL验证服务器上SSL证书的真实性

如果您想验证对等点,那么

1) 在Apache中启用mod_ssl,在php.ini中启用php_openssl.dll 2) 在php.ini文件中添加以下证书行,路径为:

curl.cainfo=“yourpath/cacert.pem” openssl.cafile=“yourpath/cacert.pem”


3) 然后重新启动服务器。

没有提供用于重现错误的URL,因此很难提供帮助。如果您在google.com之类的域中遇到错误,那么您的
ca bundle.crt
可能有问题。如果仅针对特定域出现此错误,则可能是域配置错误,通常缺少链证书。@SteffenUllrich我无法共享原始URL,但当我尝试其他URL时(也使用godaddy ssl证书)我收到另一个错误:OpenSSL SSL\u connect:SSL\u error\u连接到dan.co.il:443确保
CURLOPT\u CAINFO
CURLOPT\u CAPATH
是绝对路径而不是相对路径。可能重复:@odan我使用了绝对路径,没有帮助。