HTTPS용 예비 프록시로서의 Squid

HTTPS용 예비 프록시로서의 Squid

Debian Machine에서 Squid와 Apache가 실행 중입니다. HTTP는 Certbot(Lets Encrypt)을 통해 활성화됩니다.

여러 도메인(Vhost)이 있고 모든 도메인에 대해 하나의 IP 주소를 사용하고 있습니다.

Apache가 포트 81(HTTP) 및 444(HTTPS)에서 수신 대기 중입니다.

내 squid.conf는 다음과 같습니다:

# Incoming Connections
http_port 80 accel
cache_peer localhost parent 81 0 no-query originserver
https_port 443 acceldefaultsite=yourwebserver vhost
cache_peer localhost parent 444 0 no-query originserver

# ACL
http_access allow all

# Allowed Ports
acl SSL_ports port 443          # https
acl Safe_ports port 80          # http
acl CONNECT method CONNECT

내 문제: 위의 구성으로 서비스를 시작할 때 Squid가 HTTPS를 활성화하기 위해 인증서를 요청합니다.

그러나 모든 도메인에 대해 다른 인증서를 사용합니다. Squid가 443을 444 localhost로 리디렉션하도록 하려면 어떻게 해야 합니까?

답변1

Squid는 HTTPS를 활성화하기 위해 인증서를 요청합니다.

이것이 HTTPS의 전체 아이디어입니다. 당신은 것입니다확실히인증서로 보호된 콘텐츠를 제공하려면 인증서가 필요합니다. 그렇지 않으면 http-proxy가 없고 대신 NAT 또는 TCP 프록시를 사용합니다(예: UPSTREAM 공급자의 nginx).

그러나 모든 도메인에 대해 다른 인증서를 사용합니다.

이것이 바로 SSL(TLS)의 아이디어이자 다양한 속성을 가진 다양한 리스너를 구성할 수 있는(읽기: 해야 하는) 이유입니다. 또는 SSL을 종료(읽기: 오프로딩)하지 않고 TCP 전달만 사용합니다.

squid3vhost vonfiguration 은 다음과 같이 수행됩니다.

https_port serverone.com:443 cert=/etc/ssl/serverone.pem vhost
https_port servertwo.com:443 cert=/etc/ssl/servertwo.pem vhost

cache_peer lanserverone parent 80 0 name=lanserverone no-query originserver
cache_peer_domain lanserverone serverone.com

cache_peer lanservertwo parent 80 0 name=lanservertwono-query originserver
cache_peer_domain lanservertwo servertwo.com

Squid가 443을 444 localhost로 리디렉션하도록 하려면 어떻게 해야 합니까?

샤트 답변: 그럴 수 없습니다. 업스트림으로 nginx를 사용해 보거나 라우터에서 NAT만 수행하세요.

관련 정보