web-dev-qa-db-ja.com

HTTPSのリバースプロキシとしてのSquid

DebianマシンでSquidとApacheが実行されています。 HTTPはCertbot(Lets Encrypt)で有効になります。

複数のドメイン(Vhosts)があり、すべてのドメインに1つの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を444localhostにリダイレクトさせるにはどうすればよいですか?

1
Gill-Bates

SquidはHTTPSを有効にするための証明書を要求します

これがHTTPSの全体像です。 間違いなく証明書で保護されたコンテンツを提供するには証明書が必要です。それ以外の場合は、httpプロキシがなく、代わりにNATまたはa TCPプロキシ(UPSTREAMプロバイダーのnginxなど)を使用します。

ただし、ドメインごとに異なる証明書を使用します。

これがSSL(TLS)の考え方であり、さまざまなプロパティを使用してさまざまなリスナーを構成できる(読む必要がある)理由です。または、TCP終端なしの転送(読み取り:オフロード)SSLのみを使用します。

squid3仮想ホストの仮想化は次のように行われます:

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

443を444localhostにリダイレクトするようにSquidを強制するにはどうすればよいですか?

シャート・アンワー:できません。アップストリームでnginxを試すか、ルーターでNAT)を実行してください。

1
bjoster