curl如何连接https
时间: 2023-11-02 16:56:12 浏览: 46
要使用curl连接https,有两种方法:
方法一:设定为不验证证书和host。这种方法适用于不需要对证书进行验证的情况。在curl的配置中,设置CURLOPT_SSL_VERIFYPEER为false,即不验证证书。以下是一个示例代码:
```
$url = 'https://www.example.com';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 这个是重点
$data = curl_exec($curl);
curl_close($curl);
var_dump($data);
```
方法二:设定一个正确的证书。这种方法适用于需要对证书进行验证的情况。在curl的配置中,设置CURLOPT_SSL_VERIFYPEER为true,并且设置CURLOPT_CAINFO为证书的路径。以下是一个示例代码:
```
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__).'/cacert.pem');//这是根据http://curl.haxx.se/ca/cacert.pem 下载的证书,添加这句话之后就运行正常了
curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);
return $res;
```
以上是两种常见的curl连接https的方法,具体使用哪种方法取决于你的需求。