You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP使用Curl发起GET请求出现SSL证书错误、301跳转问题如何解决

问题原因说明

你遇到的两个问题分别对应cURL的默认配置限制:

  • SSL报错是因为PHP cURL默认会验证目标站点的SSL证书合法性,你本地环境没有配置根CA证书包所以验证失败;Python requests库自带了CA证书包,默认可以正常完成验证,所以不会报错。
  • 301跳转无响应是因为cURL默认不会自动跟随301/302重定向响应,需要手动开启对应配置。

解决方案

1. 处理SSL证书报错

临时调试方案(仅本地测试用,生产环境禁用)

直接跳过SSL证书验证,在你的curl配置段添加两行参数:

// 跳过证书主体验证
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// 跳过证书主机名验证
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

生产环境正规方案

在本地配置合法的CA证书包即可:

  1. 下载cURL官方提供的通用根CA证书包cacert.pem,保存到本地PHP安装目录的extras/ssl路径下
  2. 打开php.ini配置文件,找到[curl]配置段,添加如下配置(替换为你自己的证书实际存放路径):
curl.cainfo = "C:\php\extras\ssl\cacert.pem"
  1. 重启你的Web服务(Apache/Nginx/PHP-FPM)后配置生效,无需关闭SSL验证即可正常发起请求。

2. 处理301跳转问题

添加自动跟随重定向的配置即可:

// 开启自动跟随重定向
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// 最大重定向次数,防止死循环
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);

修改后完整可运行代码

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://www.instagram.com/majhcc/?__a=1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
// 新增:重定向配置
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
// 新增:SSL配置(如果用正式CA证书方案可以删掉下面两行)
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');

$headers = array();
$headers[] = 'Authority: www.instagram.com';
$headers[] = 'Cache-Control: max-age=0';
$headers[] = 'Sec-Ch-Ua: "Microsoft Edge";v="93", " Not;A Brand";v="99", "Chromium";v="93"';
$headers[] = 'Sec-Ch-Ua-Mobile: ?1';
$headers[] = 'Sec-Ch-Ua-Platform: "Android"';
$headers[] = 'Dnt: 1';
$headers[] = 'Upgrade-Insecure-Requests: 1';
$headers[] = 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Mobile Safari/537.36 Edg/93.0.961.52';
$headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9';
$headers[] = 'Sec-Fetch-Site: none';
$headers[] = 'Sec-Fetch-Mode: navigate';
$headers[] = 'Sec-Fetch-User: ?1';
$headers[] = 'Sec-Fetch-Dest: document';
$headers[] = 'Accept-Language: en-US,en;q=0.9,ar;q=0.8,mt;q=0.7';
$headers[] = 'Sec-Gpc: 1';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
echo $result;

内容的提问来源于stack exchange,提问作者Mohammed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:45:00