Twilio PHP - SSL证书:证书链中的自签名证书

jd1*_*182 23 php ssl curl twilio

当我尝试使用他们的PHP库通过Twilio发送消息时,我正在努力解决这个错误:

Fatal error: Uncaught exception Services_Twilio_TinyHttpException with message SSL certificate problem: self signed certificate in certificate chain thrown in F:\path\to\site\twilio-php\Services\Twilio\TinyHttp.php on line 119
Run Code Online (Sandbox Code Playgroud)

我在Windows 7上使用wamp.

我当然找到了有关证书错误的所有其他帖子.从我所看到的,通常更新或添加cacert.pem文件可以解决问题.然而,即使这样做后我仍然得到相同的错误.

正如这里的理智检查正是我所做的:

  1. 从这里下载最新证书:http://curl.haxx.se/ca/cacert.pem.
  2. 将此文件放在以下位置 c:/wamp/certs/cacert.pem
  3. 更新了php.ini如下: curl.cainfo = c:/wamp/certs/cacert.pem
  4. 重新启动所有wamp服务,包括apache

我仍然得到同样的错误.我已经验证我正在编辑正确的php.ini使用phpinfo().我不知道为什么它还在抱怨.

有没有办法验证100%我的cacert.pem文件被找到和读取?我已经检查了phpinfo(),那里没有提到它.它应该说某个地方,如果cacert.pem它正在使用?

谢谢!

小智 56

我有完全相同的问题

跟着这些步骤:

下载以下文件 - cacert.pem

然后下载以下文件 - thawte_Premium_Server_CA.pem

在文本编辑器中打开第二个文件,并将其内容复制到第一个文件(cacert.pem在底部/末尾).

保存cacert.pem并添加以下行php.ini:

[curl]
curl.cainfo=c:/xampp/php/cacert.pem
Run Code Online (Sandbox Code Playgroud)

显然将目录更改为pem所在的目录.重启php本地服务器(xampp/wamp).然后它将完美地工作.

谢谢.

  • 您能解释一下您添加的根证书颁发机构是什么以及它有什么帮助吗? (2认同)

Nun*_*rro 8

编辑TinyHttp.php

并添加CURLOPT_SSL_VERIFYPEER => FALSE,$ opts数组

  • 这意味着"不检查证书",并删除证书为您提供的MITM保护.我认为这不能解决问题. (3认同)
  • 为我工作,我在第 108 行编辑了 Http/CurlClient.php 并添加了`CURLOPT_SSL_VERIFYPEER => FALSE,`。我不想添加证书,因为如果它在服务器上不存在,我必须编辑 php.ini 以指向有时基于托管变得复杂的证书。 (2认同)