
На машине Debian запущены Squid и Apache. HTTPS включен с помощью Certbot (Lets Encrypt).
У меня несколько доменов (Vhosts) и я использую один 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-прокси и вместо этого использовался бы NAT или TCP-прокси (например, nginx с провайдерами UPSTREAM).
Но для каждого домена я использую разные сертификаты.
Это идея SSL (TLS) и причина, по которой вы можете (читай: должны) настраивать разные прослушиватели с разными свойствами. Или вы используете только пересылку TCP без терминации (читай: разгрузки) SSL.
В squid3
vhost настройка делается так:
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?
Shart anwer: Вы не можете. Попробуйте nginx с upstream или просто сделайте NAT в вашем маршрутизаторе(ах).