[ZT]squid中实现https的透明代理

本文详细介绍了在Linux环境下如何配置Squid代理,实现HTTPS的透明代理。内容涉及Linux服务端口知识,以及可能遇到的socket问题和线程保护等技术要点。
From:http://hi.baidu.com/zkheartboy/blog/item/9e37f0cd374e7f540eb345fe.html

使用iptbales+squid很容易实现http透明代理
如果要https的透明代理也只需要下面两个步骤就行了
1.生成测试用的证书:

openssl req -new -keyout /etc/squid/key.pem -nodes -x509 -days 365 -out /etc/squid/cert.pem

(如果要生成一个证书请求用于申请正式证书请用下面两个命令:

生成私钥 openssl genrsa -out key.pem 1024
生成待签名证书 openssl req -new -out req.csr -key key.pem

然后将req.csr文件中的内容提交给证书颁发机构。)

2. 在squid.conf相应地方添加

https_port 443 cert=/etc/squid/cert.pem /etc/squid/key.pem

如果出现下面的错误

The following error was encountered:

Invalid Request

Some aspect of the HTTP Request is invalid. Possible problems:

Missing or unknown request method

Missing URL

Missing HTTP Identifier (HTTP/1.0)

Request is too large

Content-Length missing for POST or PUT requests

Illegal character in hostname; underscores are not allowed

只需要在https_port 后面在加transparent

https_port 443 cert=/etc/squid/cert.pem /etc/squid/key.pem transparent


我的试了,可是不行,错误日志如下,有时间再研究一下:


Aug 13 09:01:01 adsl squid: Bungled squid.conf line 97: https_port 443 cert=/etc/squid/cert.pem /etc/squid/key.pem
Aug 13 09:05:55 adsl squid: Bungled squid.conf line 97: https_port 443 cert=/etc/squid/cert.pem /etc/squid/key.pem transparent
Aug 13 09:05:57 adsl squid: Bungled squid.conf line 97: https_port 443 cert=/etc/squid/cert.pem /etc/squid/key.pem transparent
Aug 13 09:12:02 adsl squid: Bungled squid.conf line 97: https_port 443 cert=/etc/squid/cert.pem /etc/squid/key.pem

Getting this error when accessing the login for Prepaid Verizon Wireless Link:

1) Error:
=========================================================
"ERROR
The requested URL could not be retrieved

While trying to retrieve the URL: myaccount.verizonwireless.com:443

The following error was encountered:

* Access Denied.

Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.

./configure --enable-storeio=ufs,null ...

阅读(2657) | 评论(0) | 转发(0) |
0

上一篇:泡沫惊梦

下一篇:许知远:我们这一代

给主人留下些什么吧!~~
评论热议
### 配置 Squid 6 实现 HTTPS 透明代理 Squid 6 支持通过透明代理方式拦截 HTTPS 流量,并结合 SSL 解密功能实现对加密流量的控制与日志记录。要实现 HTTPS 透明代理功能,需要配置 Squid 的监听端口、启用 SSL 解密机制,并设置透明模式,同时确保系统内核转发功能开启。 在 Squid 配置文件中,需使用 `https_port` 指令定义监听的 HTTPS 端口,并指定 `ssl-bump` 参数启用 SSL 解密。同时,启用透明模式以支持流量拦截。以下为基本配置示例: ```squid https_port 0.0.0.0:3129 ssl-bump \ cert=/etc/squid/example.com.cert \ key=/etc/squid/example.com.private \ generate-host-certificates=on \ dynamic_cert_mem_cache_size=4MB \ transparent ``` 该配置启用了透明代理模式下的 HTTPS 监听,并使用指定的 CA 证书和私钥生成动态证书,用于解密 HTTPS 流量。其中 `generate-host-certificates=on` 表示 Squid 将为每个目标域名生成临时证书,`dynamic_cert_mem_cache_size=4MB` 表示用于缓存证书的内存大小[^2]。 此外,需在系统层面开启 IP 转发功能,以支持透明代理的流量转发。编辑 `/etc/sysctl.conf` 文件,设置以下参数: ```bash net.ipv4.ip_forward = 1 ``` 然后应用配置更改: ```bash sysctl -p ``` 该设置确保了系统能够正确转发来自透明代理的流量[^1]。 在实际部署中,客户端应配置为将流量重定向到 Squid透明代理端口(如 3129),通常通过 iptables 或类似的防火墙规则实现。例如,使用以下命令将 443 端口流量重定向到 Squid透明代理端口: ```bash iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 3129 ``` 为确保客户端信任 Squid 生成的证书,需将 Squid 使用的 CA 证书部署到客户端的信任存储中。例如,将 `/etc/squid/example.com.cert` 导入浏览器或系统证书管理器中,以避免访问 HTTPS 网站时出现证书警告。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值