file_get_contents():无法找到证书CN

时间:2016-05-06 07:38:42

标签: php ssl

我们有两个域(都是https):一个是主域https://dev.project.com/,另一个是图片https://dev-images.project.com/。首页加载图片就好了,但我在file_get_contents遇到了这个问题。

ErrorException in Collection.php line 228:
file_get_contents(): Unable to locate certificate CN
in Collection.php line 228
at HandleExceptions->handleError('2', 'file_get_contents(): Unable to locate certificate CN', '')
at file_get_contents('https://dev-images.project.com/images/12012_resized.jpg') in Collection.php line 228

文件本身存在并在浏览器中检查时打开。我检查了this solution,但所有测试都是正面的:

openssl: yes
http wrapper: yes
https wrapper: yes
wrappers: array (size=12) ...

的php.ini

extension=php_openssl.dll
allow_url_fopen = On

证书是本地生成的,并在php.ini中设置

curl.cainfo = "D:\wamp64\cacert.pem"

我的开发站在Window10上使用Php 5.6的wamp64服务器。网站基于Laravel5。

1 个答案:

答案 0 :(得分:1)

尝试将路径传递给您的咖啡馆。

$opts=array(
    "ssl"=>array(
        "cafile" => "D:\\wamp64\\cacert.pem",
        "verify_peer"=> true,
        "verify_peer_name"=> true
    )
);

file_get_contents($url,false,stream_context_create($opts));

编辑:如果仅在本地服务器中失败,请检查您是否在本地服务器的cacert.pem中添加了本地创建的SSL证书,并且它没有包含任何错误或额外行。