上一篇
https屏蔽ssl证书认证
- 行业动态
- 2025-04-29
- 3379
HTTPS被屏蔽多因证书无效/过期/域名不匹配,需排查证书有效性、安装根证书或更新浏览器信任库
屏蔽HTTPS SSL证书认证的实现方法
风险提示
屏蔽SSL证书认证会降低通信安全性,容易遭受中间人攻击。仅建议在可控的测试环境或信任的内部网络中使用,生产环境或公共网络中严禁使用。
主流实现方式
浏览器层面操作
浏览器 | 操作路径 | 作用范围 |
---|---|---|
Chrome | 设置 -> 隐私设置和安全性 -> 高级 -> 使用不安全HTTP协议时继续浏览 | 全局生效 |
Firefox | 地址栏输入about:config -> 修改security.mixed_content.use_ssl 为false | 允许混合内容加载 |
Edge/Safari | 无直接关闭SSL验证的开关,需通过开发者工具手动忽略证书错误 | 单次连接有效 |
命令行工具参数
# 使用curl跳过证书验证(Linux/macOS/Windows) curl -k https://expired.badssl.com/ # 使用wget跳过证书验证 wget --no-check-certificate https://untrusted.badssl.com/
编程接口绕过
# Python requests库禁用SSL验证 import requests response = requests.get('https://self-signed.badssl.com/', verify=False) print(response.text)
代理服务器配置
工具 | 配置步骤 |
---|---|
Fiddler | 开启HTTPS解密功能(需安装证书到系统信任链) |
Burp Suite | 开启MITM代理并信任Burp根证书 |
Charles Proxy | 启用SSL Proxying功能并安装临时根证书 |
常见问题与解决方案
问题现象 | 解决方案 |
---|---|
浏览器提示”NET::ERR_CERT_DATE_INVALID” | 调整系统时钟至正确时间 使用浏览器开发者工具强制继续加载 |
命令行工具报SSL握手失败 | 添加-k 参数强制跳过验证(curl)或--no-check-certificate (wget) |
API请求返回500错误 | 检查代码中的verify 参数是否设置为False ,并确认网络连通性 |
相关问题与解答
Q1:屏蔽SSL认证后是否所有HTTPS网站都会受影响?
A1:取决于配置方式:
- 浏览器全局设置会影响所有HTTPS请求
- 命令行参数/编程接口仅影响特定请求
- 代理服务器配置可选择性对部分流量生效
Q2:除了直接禁用验证,还有其他替代方案吗?
A2:更安全的替代方案:
- 自建CA签发证书:将自签名证书导入系统信任存储
- 使用证书固定指纹:通过SHA256指纹匹配特定证书(需提前获取合法指纹)
- 临时接受风险提示:在浏览器弹出警告时手动选择继续