Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在cURL PHP中HTTPS不需要SSL证书?_Php_Ssl_Curl_Ssl Certificate - Fatal编程技术网

在cURL PHP中HTTPS不需要SSL证书?

在cURL PHP中HTTPS不需要SSL证书?,php,ssl,curl,ssl-certificate,Php,Ssl,Curl,Ssl Certificate,我正在编写一个简单的cURL脚本,用于从HTTPS网站()请求数据 基本上,我们需要配置curl实例来处理支持SSL的网站,方法如下: curl_setopt($ch, CURL_CAINFO, "path/to/cert"); 然而,我最初尝试使用openweathermap提供的请求 <?php $ressource = curl_init("https://samples.openweathermap.org/data/2.5/weather?q=Lo

我正在编写一个简单的cURL脚本,用于从HTTPS网站()请求数据

基本上,我们需要配置curl实例来处理支持SSL的网站,方法如下:

curl_setopt($ch, CURL_CAINFO, "path/to/cert");
然而,我最初尝试使用openweathermap提供的请求

<?php
$ressource = curl_init("https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=439d4b804bc8187953eb36d2a8c26a02");

$data = curl_exec($ressource);
curl_close($ressource);

samples.openweathermap.org
证书由cURL信任的机构签署。仅当连接到的服务器需要客户端证书(即用于身份验证)时,您才需要添加证书;如果服务器上的证书未由客户端信任的CA签名,则需要添加其他CA。非常感谢。然后,我假设这并不代表一个安全缺陷,就像通过如下方式禁用SSL验证一样:curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0)?curl(在PHP中使用)有一个默认的可信CA包。这就是在您不指定任何其他域时使用的方法。VERIFYPEER验证当您请求samples.openweathermap.org时,返回的证书实际上是针对该域的。如果有人试图中断您的连接并提供他们自己的证书,那么如果您没有验证证书是否与您认为正在与之交谈的服务器匹配,您可能无法捕获此消息。除非您故意为域名提供错误的证书,否则您应该保持启用VERIFYPEER。感谢大家的解释!