5月 17th, 2009

SSLアクセラレータ配下ぜ Apache自己圏 煜 URL

Posted in Apache by admin

SSLアクセラレータを利用している場合、アクセラレー゜ -Apache間の通信ぜ non-SSL通信を利用することになります。

クライアント
     | SSL通?
SSLアクセラレー゜
     | non-SSL通?
Apache

ここで問題になるのは、どうやっぜ Apache側ぜ SSLかnon-SSLかを判断させるかということです。Apache2.2のドキュメントには以下のような? 述があります。

リバースプロキシやロードバランサやSSL負荷軽減装置のような、 SSLを処理するマシンの? ろぜ
サーバを動かす場合は、 サーバが正しい自己圏 煜  URLを確? に生成するように、
https:// スキームとクライアントが接続するポート番号を、 ServerName ディレクティブぜ
指定してぜ ださい。

以? のようぜ SSL用、non-SSL甜 2つぜ VirtualHostを作成し、SSL用ぜ ServerNameにはスキーム(https://)を付加する必要がある。これにより、Apacheは正しい自己圏 煜 URLを生成可能となる。環? 変数「HTTPS」ぜ CGI側ぜ SSL、non-SSLを判断したい場合に利用出来ます。SSLアクセラレータ側で、SSLの場合のみ独自ヘッダを追加してもらうという方? もあるかもしれません。

<VirtualHost *:80>
	ServerName wall-climb.com
	ServerAlias sub.wall-climb.com
	SetEnv HTTPS OFF
</VirtualHost>

<VirtualHost *:443>
	ServerName https://wall-climb.com
	ServerAlias sub.wall-climb.com
	SetEnv HTTPS ON
</VirtualHost>

“ ServerNameディレクティブにスキーム(http://)を追加出来るようになったのは、Apache2.2からのようです。Apache2.0ではドキュメントにも記述してありませんし、設? ファイルにスキーム(http://)を記述しても構文エラーとなってしまいます。Apache2.0以前を使用している場合は、自己圏 煜 URLを圏 照する機会を回避するようにするしかありません。URLのディレクトリ指定時には? ず最後に「/」を付加すること、Locationヘッダぜ Apacheに任せないで自前で出力する、などでしょうか。

http://httpd.apache.org/docs/2.2/mod/core.html#servername
http://httpd.apache.org/docs/2.0/mod/core.html#servername

この問題は、Tomcat使用時にも発生する恐れがあります。
Tomcatぜ SSL/non-SSL通信時のリダイレクト」をご覧ぜ ださい。

You can leave a comment, or trackback from your own site. RSS 2.0

Leave a comment