Twilio:SSL 证书问题:无法获取本地颁发者证书

Gol*_*iri 5 php wamp twilio

我正在尝试使用 PHP 中的 Twilio 发送短信,使用其网站上包含的示例代码,如此处的文档所示

这是当我尝试使用 Twilio 代码运行 PHP 文件时遇到的错误的完整描述:

Fatal error: Uncaught Twilio\Exceptions\EnvironmentException: SSL certificate problem: unable to get local issuer certificate in C:\wamp\www\uniSoftX\vendor\twilio\sdk\src\Twilio\Http\CurlClient.php on line 40

Twilio\Exceptions\EnvironmentException: SSL certificate problem: unable to get local issuer certificate in C:\wamp\www\uniSoftX\vendor\twilio\sdk\src\Twilio\Http\CurlClient.php on line 40
Run Code Online (Sandbox Code Playgroud)

经过研究,我发现 Twilio 的一篇文章说这个问题可能是由于 Twilio 将其根证书更改为 DigiCert 全局根 CA 引起的。我安装了根证书,但仍然没有运气。

我在 Windows 上运行 WAMP 服务器,PHP 7.24。

这是我的代码:

<?php


require_once "../vendor/autoload.php";

use Twilio\Rest\Client;

$sid = "0000000000000000000000000";
$token = "000000000000000000000000";
$twilio = new Client($sid, $token);

$message = $twilio->messages
                  ->create("+0000000000", // to
                           [
                               "body" => "This is the ship that made the Kessel Run in fourteen parsecs?",
                               "from" => "+0000000000",
                               "mediaUrl" => ["https://c1.staticflickr.com/3/2899/14341091933_1e92e62d12_b.jpg"]
                           ]
                  );

print($message->sid);
?>
Run Code Online (Sandbox Code Playgroud)

Nab*_*eel 9

  1. 下载以下 pem 文件:https://curl.haxx.se/ca/cacert.pem

  2. 将此文件复制到 c:\cert\cacert.pem

  3. 在您最喜欢的编辑器中打开 php.ini 文件(请参阅此处了解在哪里可以找到它)

  4. 如果您的 php.ini 中存在以下配置字符串:curl.cainfo,请通过删除“;”来取消注释它 并修改路径以将其指向您下载的 cacert.pem 文件,例如:

curl.cainfo=c:\cert\cacert.pem
Run Code Online (Sandbox Code Playgroud)
  1. 重新启动 Apache 或 IIS 服务以应用更改。

参考: https://support.twilio.com/hc/en-us/articles/235279367-Twilio-PHP-helper-library-SSL-certificate-problem-on-Windows