除非设置以下内容,否则我会收到上述错误:
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");
,仍然出现相同的错误。
答案 0 :(得分:0)
如果SSL证书由任何证书颁发机构(CA)签名,则客户端应用(例如浏览器)将通过CA验证SSL证书。 CA告诉客户端它是否是受信任的服务器。
使用自签名证书而不使用此选项时
Chrome
您会收到错误消息,因为您的客户端应用程序将尝试通过证书颁发机构验证您的自签名SSL证书,而CA会由于它是自签名证书而报错。
这就是我们必须使用此选项来跳过SSL证书验证步骤的原因。