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

Arch Linux下Squid 6代理SSL请求无法缓存的配置排查

Squid SSL缓存失效问题解决

核心问题分析

你当前的Squid配置存在两个关键问题,导致HTTPS请求仍以TCP_TUNNEL方式转发而未被缓存:

  1. 端口冲突:http_port和https_port使用了同一个端口(13000),Squid无法正确区分并处理HTTPS的解密请求
  2. SSL Bump规则不完整:缺少必要的证书信任配置,导致Squid无法完成HTTPS流量的解密与缓存

具体修改步骤

1. 修复端口配置

将HTTP和HTTPS代理端口分开,或者用单端口同时处理两种请求:

方案一:分端口配置

修改squid.conf中的端口部分:

# 处理普通HTTP请求的代理端口
http_port 13000

# 处理HTTPS请求的SSL Bump端口
https_port 13001 ssl-bump \
  generate-host-certificates=on \
  dynamic_cert_mem_cache_size=4MB \
  tls-cert=/etc/squid/myCA.pem \
  options=NO_SSLv3,NO_TLSv1,NO_TLSv1_1

方案二:单端口处理所有请求(推荐)

让同一个端口同时处理HTTP和HTTPS的显式代理请求:

http_port 13000 ssl-bump \
  generate-host-certificates=on \
  dynamic_cert_mem_cache_size=4MB \
  tls-cert=/etc/squid/myCA.pem \
  options=NO_SSLv3,NO_TLSv1,NO_TLSv1_1

2. 补充SSL Bump必要配置

在squid.conf中添加以下规则,确保Squid可以信任自签名证书并解密HTTPS流量:

# 允许Squid使用自定义CA证书处理SSL请求
sslproxy_cert_error allow all

# 跳过后端服务器证书验证(避免因证书链问题导致缓存失败)
sslproxy_flags DONT_VERIFY_PEER

# SSL Bump规则:先解析请求再解密所有流量
ssl_bump stare all
ssl_bump bump all

3. 优化缓存规则(可选)

添加专门针对HTTPS的缓存过期规则,确保更多内容被缓存:

# 针对HTTPS内容的缓存策略,与HTTP保持一致
refresh_pattern ^https:// 0 20% 4320

4. 生效配置并验证

  1. 初始化缓存目录(首次配置或修改缓存路径时执行):
squid -z
  1. 重启Squid服务:
systemctl restart squid
  1. 浏览器代理配置:

    • 若用分端口方案:设置HTTP代理为你的服务器IP:13000,HTTPS代理为你的服务器IP:13001
    • 若用单端口方案:只需设置HTTP代理为你的服务器IP:13000,浏览器会自动通过该端口处理HTTPS请求
  2. 验证缓存效果:
    访问HTTPS网站后,查看Squid的access.log,若出现类似TCP_MEM_HIT/200或TCP_DISK_HIT/200的记录,说明缓存生效。

额外注意事项

  • 确保缓存目录权限正确:
chown -R squid:squid /var/cache/squid
  • 浏览器必须信任你生成的myCA.pem证书,否则会出现安全警告(你已完成此步骤,可忽略)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 13:54:50