缺少 SSL 证书?
SSL certificates missing?
我正在搞乱解析 (parse.com),当我 运行 以下内容时,我得到了一个致命错误。我 运行ning 的代码直接取自 parse.com 对 PHP SDK 的介绍。
我 运行宁 XAMPP Windows 10.
我是否需要通过 https 运行 我的脚本,或者我真的在某处缺少一些 SSL 证书吗?我如何让它工作?
错误:
Fatal error: Uncaught exception 'Parse\ParseException' with message 'SSL certificate problem: unable to get local issuer certificate' in C:\xampp\htdocs\project\assets\php\vendor\parse\php-sdk\src\Parse\ParseClient.php:284
Stack trace:
#0 C:\xampp\htdocs\project\assets\php\vendor\parse\php-sdk\src\Parse\ParseObject.php(1037): Parse\ParseClient::_request('POST', '/1/classes/Test...', NULL, '{"foo":"bar"}', false)
#1 C:\xampp\htdocs\project\assets\php\vendor\parse\php-sdk\src\Parse\ParseObject.php(947): Parse\ParseObject::deepSave(Object(Parse\ParseObject), false)
#2 C:\xampp\htdocs\project\assets\php\test.php(15): Parse\ParseObject->save()
#3 {main}
thrown in C:\xampp\htdocs\project\assets\php\vendor\parse\php-sdk\src\Parse\ParseClient.php on line 284
以及 PHP 片段:
require("./vendor/autoload.php");
use Parse\ParseClient;
ParseClient::initialize('secret', 'reallysecret', 'ubersecret');
use Parse\ParseObject;
$testObject = ParseObject::create("TestObject");
$testObject->set("foo", "bar");
$testObject->save();
这里有很多重复的问题,有些答案也略有不同。
这不是 parse.com 问题,而是您的本地 PHP 配置不正确。
一个是禁用curl
的SSL验证,这是不好的。
另一种是在 php.ini
.
中设置正确的证书路径
您可以下载 http://curl.haxx.se/ca/cacert.pem 到 cacert.pem 文件。
在你的 php.ini
中设置
curl.cainfo = "c:/youroflder/cacert.pem"
不保证此 cacert.pem 文件是安全的,但您可以使用不同的工具生成自己的文件。
有用的回答:How can I set CURLOPT_CAINFO globally for PHP on Windows?
我正在搞乱解析 (parse.com),当我 运行 以下内容时,我得到了一个致命错误。我 运行ning 的代码直接取自 parse.com 对 PHP SDK 的介绍。
我 运行宁 XAMPP Windows 10.
我是否需要通过 https 运行 我的脚本,或者我真的在某处缺少一些 SSL 证书吗?我如何让它工作?
错误:
Fatal error: Uncaught exception 'Parse\ParseException' with message 'SSL certificate problem: unable to get local issuer certificate' in C:\xampp\htdocs\project\assets\php\vendor\parse\php-sdk\src\Parse\ParseClient.php:284
Stack trace:
#0 C:\xampp\htdocs\project\assets\php\vendor\parse\php-sdk\src\Parse\ParseObject.php(1037): Parse\ParseClient::_request('POST', '/1/classes/Test...', NULL, '{"foo":"bar"}', false)
#1 C:\xampp\htdocs\project\assets\php\vendor\parse\php-sdk\src\Parse\ParseObject.php(947): Parse\ParseObject::deepSave(Object(Parse\ParseObject), false)
#2 C:\xampp\htdocs\project\assets\php\test.php(15): Parse\ParseObject->save()
#3 {main}
thrown in C:\xampp\htdocs\project\assets\php\vendor\parse\php-sdk\src\Parse\ParseClient.php on line 284
以及 PHP 片段:
require("./vendor/autoload.php");
use Parse\ParseClient;
ParseClient::initialize('secret', 'reallysecret', 'ubersecret');
use Parse\ParseObject;
$testObject = ParseObject::create("TestObject");
$testObject->set("foo", "bar");
$testObject->save();
这里有很多重复的问题,有些答案也略有不同。
这不是 parse.com 问题,而是您的本地 PHP 配置不正确。
一个是禁用curl
的SSL验证,这是不好的。
另一种是在 php.ini
.
您可以下载 http://curl.haxx.se/ca/cacert.pem 到 cacert.pem 文件。
在你的 php.ini
中设置
curl.cainfo = "c:/youroflder/cacert.pem"
不保证此 cacert.pem 文件是安全的,但您可以使用不同的工具生成自己的文件。
有用的回答:How can I set CURLOPT_CAINFO globally for PHP on Windows?