调用外部API动态生成的图片服务器加载失败 如何绕过SSL校验获取图片
绕过SSL证书校验的解决方案
临时测试场景(curl命令)
直接在curl命令中添加-k或--insecure参数即可忽略证书校验,示例如下:
curl -k "https://apiurl?dynamic-variables"
后端调用API场景
如果是后端服务请求该API获取图片资源,可在对应HTTP请求配置中关闭SSL校验,常用语言的实现方式如下:
- PHP(curl扩展)
// 初始化curl后添加以下配置 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- Python(requests库)
import requests response = requests.get("https://apiurl?dynamic-variables", verify=False)
- Node.js(axios库)
const axios = require('axios'); const https = require('https'); axios.get("https://apiurl?dynamic-variables", { httpsAgent: new https.Agent({ rejectUnauthorized: false }) })
前端直接引用图片场景
前端无法通过<img>标签本身绕过SSL校验,可采用两种方案解决:
- 新增后端代理接口:由后端请求API时关闭SSL校验,拿到图片资源后返回给前端,前端改为请求自有服务的代理接口
- 升级服务器根证书库:本地正常、服务器报错大多是服务器根证书版本过旧导致,更新服务器CA根证书包可从根本解决问题,无需绕过校验
注意:关闭SSL校验属于临时应急方案,存在数据被中间人窃取、篡改的安全风险,不建议长期使用。优先选择更新外部API证书、升级服务器根证书的方式彻底解决问题。
内容的提问来源于stack exchange,提问作者z1234
相关产品推荐
相关产品推荐

