Squid リバースプロキシを使用した Apache http から https へのリダイレクト

Squid リバースプロキシを使用した Apache http から https へのリダイレクト

私はウェブサイト example.com を実行するウェブサーバーを持っています。Apache で http から https へのリダイレクトを設定しました。以下を参照してください。

<VirtualHost *:80> 
  ServerName www.example.com 
  Redirect permanent / https://www.example.com
</VirtualHost>

<VirtualHost *:443> 
  ServerName www.example.com 
  DocumentRoot /usr/www/htdocs 
  SSLEngine On #etc... 
</VirtualHost>

http 上のリクエストは内部的に正常にリダイレクトされました。

問題は、外部リクエストが Squid リバース プロキシを通過する必要があることです。また、http://example.com に接続しようとすると、http 接続が確立されます。https ではないため、リダイレクトは失敗します。

URLを次のように入力するとhttp://example.com/index.html、接続は正常に https にリダイレクトされます。

この問題を解決する方法についてアイデアをお持ちの方はいらっしゃいますか?

答え1

に接続しようとするとhttp://example.com、HTTPS ではなく HTTP 接続が確立され、リダイレクトが失敗します。

http://example.com問題と思われるのは、Apache 仮想ホスト設定にのエントリがないことです。wwwプレフィックスは技術的には のサブドメインであるため、解決には別のサイトと見なされます。Squid の問題を除けば、簡単な修正方法は、ディレクティブを使用してexample.comのさまざまなバリエーションに対応するように仮想ホストを変更することです。example.comServerAlias

# Redirect http://example.com and http://www.example.com
# to https://www.example.com

<VirtualHost *:80> 
   ServerName example.com
   ServerAlias www.example.com
   Redirect permanent / https://www.example.com
</VirtualHost>

# Serve https://example.com and https://www.example.com
# from the same DocumentRoot

<VirtualHost *:443> 
  ServerName example.com 
  ServerAlias www.example.com
  DocumentRoot /usr/www/htdocs 
  SSLEngine On #etc... 
</VirtualHost>

https://example.com以下にリダイレクトすることもできますhttps://www.example.com:

# Redirect http://example.com and http://www.example.com
# to https://www.example.com

<VirtualHost *:80> 
   ServerName example.com
   ServerAlias www.example.com
   Redirect permanent / https://www.example.com
</VirtualHost>

# Redirect https://example.com to https://www.example.com

<VirtualHost *:443> 
  ServerName example.com 
  Redirect permanent / https://www.example.com
  SSLEngine On #etc... 
</VirtualHost>

# Serve https://www.example.com

<VirtualHost *:443> 
  ServerName www.example.com 
  DocumentRoot /usr/www/htdocs 
  SSLEngine On #etc... 
</VirtualHost>

名前ベースの仮想ホストの詳細については、ここ

関連情報