GoDaddy的PHP cURL SSL问题:SSL证书问题:无法获取本地颁发者证书
我对GoDaddy的新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
<?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我使用了绝对路径,没有帮助。