https信任所有证书
- 行业动态
- 2025-04-26
- 1
通过配置信任所有根CA证书或禁用证书校验(如Java的-Djsse.enableSNIExtension=false),可让HTTPS信任所有证书,但存在中间人攻击风险,仅限测试环境使用
浏览器配置方法
Google Chrome
操作路径:
设置 > 隐私设置和安全性 > 安全(SSL/TLS)设置 > 高级
关键选项:
- 勾选
不执行证书验证
或继续浏览不安全站点
- 关闭「使用安全DNS协议」等增强验证功能
风险提示:
此操作会绕过所有证书验证,包括过期/伪造证书,极易遭受中间人攻击。
Firefox
操作路径:
地址栏输入 about:config
> 搜索 security.mixed_content
修改项:
security.mixed_content.block_restricted
设为false
security.mixed_content.block_display_content
设为false
security.ssl.disable_certificate_verification
设为true
注意事项:
需手动输入高风险配置项,浏览器会弹出多重警告。
Microsoft Edge
特殊操作:
通过F12开发者工具注入临时配置:
ServiceWorkerContainer.addEventListener('messageerror', e => {});
局限性:
仅部分绕过证书错误提示,无法完全禁用验证。
操作系统级配置
操作系统 | 配置路径 | 核心参数 |
---|---|---|
Windows | 组策略编辑器 gpedit.msc | 禁用SSL/TLS验证策略 |
macOS | 终端执行 sudo /etc/init.d/ssl stop | 强制停用证书验证服务 |
Linux | 修改/etc/ssl/openssl.cnf | 注释verify_depth 相关配置 |
警告:系统级配置可能导致全局网络服务瘫痪,建议仅在测试环境使用。
替代方案(推荐)
手动添加可信证书
操作步骤:
- 导出目标站点的
.crt
证书文件 - 导入到系统信任存储:
- Windows:控制面板 > 管理工具 > 证书管理器
- macOS:钥匙串访问 > 系统根证书
- 仅信任指定证书而非全部
使用代理服务器
实现原理:
通过MITM代理(如Burp Suite)拦截请求,自动签署所有流量,客户端仅需信任代理的CA证书。
常见问题与解答
Q1:为什么浏览器默认阻止自签名证书?
A:自签名证书缺乏第三方权威机构背书,无法证明服务器真实身份,放任此类证书会使得钓鱼网站、反面软件轻松伪装成合法服务。
Q2:如何安全地批量信任多个内部证书?
A:
- 建立企业级CA系统,签发内部证书链
- 将根CA证书导入系统信任存储
- 通过证书策略限制下级证书的使用范围
- 定期更新CRL撤销