AN HTTPD ゲストブック/コメント集(2006年4月29日14:02)


いと gfh05223@nifty.com 2006/04/30 20:11

金子さん

getenv('REMOTE_HOST')が 'localhost' か '127.0.0.1' かその他かは、
1. AN HTTPDの「リモートホストを取得」
2. hostsファイル
3. プロキシの cfg

などの設定内容に影響されますね。
設定が各自各様なので、自分の設定に合わせて決めることになりますね。


金子 nbtool@krk.homelinux.com 2006/04/30 13:39

いとさん

金子です

ありがとうがざいました。

>ブラウザ -> プロキシ(DeleGate/stoneなど) -> AN HTTPD という
>構成かと思います。SSL通信なのはブラウザ <-> プロキシ間であり、
>プロキシ <-> AN HTTPD間は HTTP通信です。

言われてみれば、「ア そうか。」ですが
全然思いつきませんでした。(やった事が身についていない証拠ですね)

if(getenv('REMOTE_HOST') == '127.0.0.1') として認識しました。
プロキシ(stone)とサーバ(AN HTTPD )が同一ホスト上なのに
if(getenv('REMOTE_HOST') == 'localhost') ではなぜかだめでした。

localhostと127.0.0.1は同じ場所を示すはずなのに・・・

stone.cfgで127.0.0.1:80 443/sslとして
ループバックアドレスを使っている為でしょうか。
同じ(数値・文字)でないといけないとか・・・

>田中->中田さんですね。
間違えていました。すみませんでした。


いと gfh05223@nifty.com 2006/04/29 22:17

金子さん
田中->中田さんですね。

ブラウザ -> プロキシ(DeleGate/stoneなど) -> AN HTTPD という
構成かと思います。SSL通信なのはブラウザ <-> プロキシ間であり、
プロキシ <-> AN HTTPD間は HTTP通信です。ということで
AN HTTPDではプロトコルが SSLであることは分かりようがないと思います。

プロキシと AN HTTPDが同一ホストで動いていれば
 if(getenv('REMOTE_HOST') == 'localhost')
とし、プロキシ(localhost)からのアクセスかどうかを見れば
SSLかどうかが判定できるだろうと思います。

もし同一ホストでなければ "localhost" は "プロキシのIPアドレス" に。

この(同一の)場合、サーバ機自身から HTTPでアクセスするときは
http://127.0.0.1/ や http://localhost/ ではなく
http://プライベートIPアドレス/ か http://ホスト名/
にしないといけません。https://127.0.0.1/ は大丈夫です。


金子 nbtool@krk.homelinux.com 2006/04/29 14:02

田中様

金子と申します。

AN HTTPD 1.42nを使用させて頂いています。
環境
OS WindowsXP

現在、いとさんの過去ログ等を参考にOpenSSLを導入したのですがPHPにて

if (getenv('HTTPS') == 'on')

としてSSL通信しているかいないか判定して表示しようとしていますがHTTPDでは反応してくれません。
設定がいけないのでしょうか?
それともHTTPDの仕様なのでしょうか?
もし仕様ならば何か良い方法をご存じないでしょうか。

宜しくお願い致します。