Squid 6.11 从0-1完整部署教程(透明+显式代理、HTTPS精准URL拦截、全设备兼容(苹果i))openwrt实测
一、教程概述
1.1 实现功能(也适合squid7 ‘没验证’)
- 双代理模式兼容:3127端口 HTTPS透明代理(客户端无感知)、3128端口显式代理(手动配置)
- 精准HTTPS拦截:仅解密指定域名,实现URL路径级拦截(区别于简单域名拦截)
- 全终端兼容:完美适配 Windows、安卓、iOS/macOS 苹果设备,解决苹果TLS严格校验报错
- 高稳定性容错:适配各类上游网站证书异常、IP直连访问场景
- 标准化日志排错:基于Squid官方字段,可清晰区分解密状态、拦截状态、握手错误
1.2 环境依赖
-
系统:Linux系统配置(参考此文时应注意各个版本的区别) (实测openwrt24版本)
-
软件版本:Squid 6.11(高版本语法向下兼容,本教程经6.11测试成功)
-
依赖工具:iptables、openssl、ca-certificates(luci-app-squid-adv、luci-app-squid)
1.3 核心原理扩展
- 普通拦截的局限:一般仅拦截域名,无法识别URL路径,如在路由器上配置的广告拦截(adguardhome)
- SSL Bump中间人原理:Squid自建CA证书,拆分TLS连接:客户端↔Squid(自建证书)、Squid↔外网(官方证书),解密后读取完整URL,实现精准拦截
- 透明代理原理:依靠iptables NAT转发+内核流量转发,客户端无需配置代理,流量自动被网关劫持
- 流量分流逻辑:指定域名解密拦截,其余所有网站直接透传,不影响正常上网、无证书弹窗
- 网络拓扑(架构)方案:双路由、旁路由均可,光猫–>主路由–>次路由–>终端
二、苹果设备证书专项规范(官方权威结论)
2.1 证书硬性要求
苹果设备对TLS证书校验远严格于安卓/Windows,自建CA必须全部满足:
- 密钥算法:RSA 2048bit 及以上
- 签名算法:SHA256及以上
- 扩展字段:必须包含 SAN域名扩展
- 基础约束:标记为CA签发证书,支持签发子证书
2.2 398天有效期误区(重点)
- 自建私有根CA:用户手动安装信任,不受398天限制,可设置3-10年有效期.但听说苹果的受限制(仁智各见)。
- Squid动态生成的网站子证书:属于TLS服务器证书,苹果官方限制≤398天(Squid自动生成(openwrt))
2.3 证书格式区分(必看)
- PEM格式(myCAIOS.pem):供 Squid 服务读取使用
- CER格式(myCAIOS.cer):供 iOS/macOS苹果设备安装
三、从零生成苹果全兼容双格式CA证书
3.1 创建证书目录
mkdir -p /etc/squid/cert
cd /etc/squid/cert
3.2 创建openssl证书配置文件(myCA.cnf)
适配苹果所有校验规则,补齐必备扩展字段(尽量看起来像是正规的证书)
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
x509_extensions = v3_ca
[dn]
C = CN
ST = Beijing
L = Haidian
O = TechSecure Networks Co., Ltd.
OU = Information Security Department
CN = TechSecure Internal Root CA
[v3_ca]
basicConstraints = critical, CA:TRUE
keyUsage = critical, keyCertSign, cRLSign
extendedKeyUsage = serverAuth, clientAuth
subjectAltName = DNS:TechSecure-Int

openwrt实测&spm=1001.2101.3001.5002&articleId=160713989&d=1&t=3&u=ca936ed9863d4f88967fc042e5759b23)

被折叠的 条评论
为什么被折叠?



