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

如何配置Squid的https_port(3129端口)实现TLS内容缓存?

解决Squid 6.5 HTTPS缓存配置问题

问题根源

当前配置采用TCP隧道模式(日志中TCP_TUNNEL)转发HTTPS请求,Squid无法解密内容,因此无法实现缓存。添加ssl-bump时因语法错误导致启动失败。

正确配置步骤

1. 修正https_port语法

Squid 6.x中ssl-bump作为https_port的模式选项,需保证参数格式正确,避免单行过长引发解析错误。正确配置如下:

https_port 3129 ssl-bump \
  tls-cert=/etc/squid/squid-ca-cert.pem \
  tls-key=/etc/squid/squid-ca-key.pem \
  generate-host-certificates=on \
  dynamic_cert_mem_cache_size=4MB

2. 确认sslcrtd_program配置有效性

  • 验证证书生成工具路径:执行ls -l /lib/squid/security_file_certgen,确保文件存在且可执行
  • 创建并授权SSL证书缓存目录(若不存在):
    mkdir -p /usr/local/squid/var/cache/squid/ssl_db
    chown proxy:proxy /usr/local/squid/var/cache/squid/ssl_db
    
  • 保持sslcrtd_program配置不变:
    sslcrtd_program /lib/squid/security_file_certgen -c -s /usr/local/squid/var/cache/squid/ssl_db -M 4MB
    

3. 添加SSL Bump规则

配置解密规则,让Squid能够处理HTTPS内容缓存:

acl all src all
ssl_bump stare all
ssl_bump bump all
  • ssl_bump stare all:让Squid获取SSL握手信息
  • ssl_bump bump all:解密所有HTTPS请求,为缓存提供前提

4. 启用HTTP缓存(可选)

若需同时缓存HTTP请求,添加标准HTTP端口及缓存基础配置:

http_port 3128
cache_dir ufs /var/spool/squid 1000 16 256
cache_mem 256 MB
maximum_object_size 100 MB

5. 验证配置并重启服务

  • 检查配置语法:
    squid -k parse
    
  • 初始化SSL证书缓存(首次配置执行):
    /lib/squid/security_file_certgen -c -s /usr/local/squid/var/cache/squid/ssl_db -M 4MB
    
  • 重启Squid:
    systemctl restart squid
    

6. 测试缓存效果

执行测试命令后,查看日志应出现TCP_MEM_HIT或TCP_REFRESH_HIT(表示缓存生效):

curl --proxy-insecure --proxy https://localhost:3129 https://assets-global.website-files.com
tail -f /var/log/squid/access.log

关键说明

  • 你的Squid已满足ssl-bump所需编译条件(--enable-ssl-crtd和--with-openssl),无需重新编译
  • 客户端需信任Squid的CA证书(/etc/squid/squid-ca-cert.pem),否则需用--proxy-insecure跳过验证
  • HTTPS缓存依赖中间人解密,Squid会动态生成目标站点证书完成SSL握手

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 23:35:28