繁体   English   中英

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

[英]SSL certificate problem: unable to get local issuer certificate

我创建了一个php-curl文件来从另一台服务器akses API:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://192.168.4.2/sdk_service/rest/users/login/v1.1');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
// curl_setopt($ch, CURLOPT_CAINFO, "C:/xampp/htdocs/curl/cibinong/cacert.pem");
// curl_setopt($ch, CURLOPT_CAPATH, "C:/xampp/htdocs/curl/cibinong/");
$result = curl_exec($ch);
if (curl_error($ch)) {
    echo curl_error($ch);
}
print_r($result);

我收到错误消息:

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

帮帮我,也许我想念什么?

问题在于您获得了无效的SSL证书,因此您需要关闭一些检查。 您可以使用以下选项尝试吗?

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

这将跳过对SSL主机和SSL对等方的验证。 因为,在这种情况下,这就是您所需要的。

您正在使用IP地址访问HTTPS URL,这实际上很少起作用。 大多数站点都要求使用SNI名称来获取正确的服务器证书,而且许多CA甚至不向您出售纯IP地址的证书。

代替禁用证书检查,您应该考虑使用服务器的“适当”名称和正式名称访问该服务器,以便服务器知道在TLS握手中提供哪个证书。

如果您确实要连接到该特定IP地址,并且仍然在URL中使用正确的名称,则可以使用CURLOPT_RESOLVE选项来进行连接。 记录在其他CURL选项中。

不要选择禁用证书检查。 这是一个糟糕的解决方法,只会永远存在危险,并使您容易受到攻击。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM