我的网络无法直接访问互联网鱿鱼3.5.9作为一个透明代理监听tcp/8080
HTTP 和tcp/8443
HTTPS(iptables
分别通过 tcp/80 和 tcp/443 重定向)。
该 Squid 也不能直接访问 Internet,但可以与网络其他部分具有 Internet 访问权限的父 Squid 进行通信。
使用 HTTP 它工作得很好 - 客户端发出请求http://www.example.com(端口 80),路由器和 iptables 将连接重定向到 Squid 的端口 8080,该端口拦截请求并向照常提供服务的上游代理发出请求。以下是使用的配置选项:
http_port 8080 intercept
cache_peer proxy-upstream parent 3128 0 no-query
never_direct allow all
效果很好。现在我想对 HTTPS 做类似的事情:
https_port 8443 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/myCA.pem
sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
sslcrtd_children 5
ssl_bump bump all
如果没有cache_peer
它按预期工作,即自动生成假 SSL 证书并直接连接到目标。
然而用cache_peer
它不起作用。我从代理收到 HTTP/503 错误:
1446684476.877 0 proxy-client TAG_NONE/200 0 CONNECT 198.51.100.10:443 - HIER_NONE/- -
1446684476.970 3 proxy-client TCP_MISS/503 4309 GET https://secure.example.com/ - FIRSTUP_PARENT/proxy-upstream text/html
或者,如果我将ssl_bump
设置更改为:
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all
我在cache.log 中收到一条崩溃消息:
2015/11/05 01:07:11 kid1| assertion failed: PeerConnector.cc:116: "peer->use_ssl"
当我在非透明模式下使用此代理时,即将客户端上的代理配置为 proxy-test:3128 ,它可以工作:
1446684724.879 141 proxy-client TCP_TUNNEL/200 1886 CONNECT secure.example.com:443 - FIRSTUP_PARENT/proxy--upstream -
所以我需要以某种方式打开HTTPS
登陆的请求代理测试进入CONNECT
转发到的请求代理上游。如果 Squid 不能做到这一点,是否还有其他透明到非透明代理软件可以做到这一点?
谢谢!