CURL错误:SSL证书错误:证书链中的自签名证书

时间:2018-06-20 12:32:55

标签: php ssl curl

除非设置以下内容,否则我会收到上述错误:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

这是不安全的,并且违反了SSL的目的。

我从https://curl.haxx.se/ca/cacert.pem下载了最新的cacert.pem证书。

我在php.ini中设置了以下内容,然后重新启动了Apache。

curl.cainfo = /etc/ssl/cacert.pem

哪个产生了相同的错误。 所以我试图在运行时设置:

curl_setopt($curl,CURLOPT_CAINFO, "/etc/ssl/cacert.pem");

,仍然出现相同的错误。

1 个答案:

答案 0 :(得分:0)

如果SSL证书由任何证书颁发机构(CA)签名,则客户端应用(例如浏览器)将通过CA验证SSL证书。 CA告诉客户端它是否是受信任的服务器。

使用自签名证书而不使用此选项时

Chrome

您会收到错误消息,因为您的客户端应用程序将尝试通过证书颁发机构验证您的自签名SSL证书,而CA会由于它是自签名证书而报错。

这就是我们必须使用此选项来跳过SSL证书验证步骤的原因。