내가 가지고 있는 곳에 직접 인터넷에 접속할 수 없는 네트워크가 있습니다.오징어 3.5.9로서투명 프록시tcp/8080
HTTP 및 HTTPS를 수신합니다 tcp/8443
( iptables
각각 tcp/80 및 tcp/443을 통해 리디렉션됨).
이 Squid는 직접적인 인터넷 접속이 없지만 인터넷 접속이 가능한 네트워크의 다른 부분에 있는 부모 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
캐시.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가 그렇게 할 수 없다면 그렇게 할 수 있는 다른 투명-비투명 프록시 소프트웨어가 있나요?
감사해요!