Top過去ログ目次掲示板

作成日:2005年10月22日 作成:おやじ
掲示板で過去に質問された内容です。

No.5329 SSLの導入設定で


No.5329 投稿時間:2005年10月22日(Sat) 15:15 投稿者名:rie URL:
タイトル:SSLの導入設定で

いつもお世話になっております。

一通り全部終了したので、実際にアクセスしてみたのですが、

http:をhttps:で接続すると、

ERROR
The requested URL could not ・・・
_____

While trying to retrieve ・・・
The following error ・・・
Connection Failed
The system returned:
(110) Connection timed out
The remote host or network

というようなエラー画面になってしまいます。
一通り全部設定をやり直したのですが、同じでした。

内部からも外部からも試してみましたが、同じでした。

唯一違うことといえば、
1.ブラウザのSSL用設定をまだやっていません。
2.■クライアント用証明書の作成をやっていません。
3.◆クライアント認証を動かすための設定をやっていません。
4.
 C:\>cd apache\bin
 C:\apache\bin>apache -k install
に関してですが、流れから察すると、apacheにbinはないので、apache2に変更して実行したくらいでしょうか。
 C:\>cd apache2\bin
 C:\apache\bin>apache -k install
ただ、これでもエラーになってしまったので、
 C:\>cd c:\apache2\bin
 C:\apache\bin>apache -k install
でやったらできました。

考えられるアドバイス等、よろしくおねがいします。

win2000sp4です。
OpenSSLは 0.9.8


No.5330 投稿時間:2005年10月22日(Sat) 17:37 投稿者名:おやじ URL:
タイトル:全体的に話がよく見えませんが・・。

おやじのHPは環境によってありそうなバリエーションを交えて書いてあるので、HPの設定をコピペすれば動くというものではなく、それなりに書いてあることを理解していただかないと、つらいものがあります。
そういった観点で書かれている内容をみると、基本的な話が押さえられていないのと、HPに書いてある段取りの肝の部分が押さえられていない、テストしていない、と思われます。

> 一通り全部終了したので、実際にアクセスしてみたのですが、

その前に、「サービス起動の設定と起動」のところの作業をして、最後の起動確認をしましたか? これで、443がlistenになっていなければ、アクセスしても下記のメッセージが出るだけです。下記はApacheが443番ポートで待ち受けていれば出ないメッセージであり、起動確認はしましたか? ここをクリアできれば終わったも同然で、httpsアクセスのひとつの肝です。ここをクリアできない限り、ブラウザでアクセスするフェーズにはいけません。

>
> http:をhttps:で接続すると、
>
> ERROR
> The requested URL could not ・・・
> _____
>
> While trying to retrieve ・・・
> The following error ・・・
> Connection Failed
> The system returned:
> (110) Connection timed out
> The remote host or network
>
> というようなエラー画面になってしまいます。
> 一通り全部設定をやり直したのですが、同じでした。
>
> 内部からも外部からも試してみましたが、同じでした。
>
> 唯一違うことといえば、
> 1.ブラウザのSSL用設定をまだやっていません。
> 2.■クライアント用証明書の作成をやっていません。
> 3.◆クライアント認証を動かすための設定をやっていません。

1項は後でやればいいことですが、HPに書いてあるとおりで、2項と3項は意味をしっかり理解してくださいね。普通に暗号化したいだけなら絶対にやる必要のないことですから。

> 4.
>  C:\>cd apache\bin
>  C:\apache\bin>apache -k install
> に関してですが、流れから察すると、apacheにbinはないので、apache2に変更して実行したくらいでしょうか。
>  C:\>cd apache2\bin
>  C:\apache\bin>apache -k install
> ただ、これでもエラーになってしまったので、
>  C:\>cd c:\apache2\bin
>  C:\apache\bin>apache -k install
> でやったらできました。

ここが、全くわからないのです。どうも非SSLのMSIパッケージをインストールしている環境で、SSL化をされようとしているように見えるのですが・・。ここでは、Hunterのものをインストールしたディレクトリ以外は全く関係ない話なのはわかりますか?従って、Apacheだとうまくいかず、Apache2ではうまくいくという論議はありえず、自分がインストールしたディレクトリで作業してください。後、当然ですがregeditで「-D SSL」を追加してますよね。うまく動かないという話題は、普通、ここで躓いてエラーがでて443が起動しないという話題が出てくるのですが、ここでエラーの話が出ないで先のアクセスエラーになることは考えられないので、チャント「サービス起動の設定と起動」ができていないと思われます。


No.5331 投稿時間:2005年10月22日(Sat) 19:05 投稿者名:rie URL:
タイトル:Re: 全体的に話がよく見えませんが・・。

> その前に、「サービス起動の設定と起動」のところの作業をして、最後の起動確認をしましたか? これで、443がlistenになっていなければ、アクセスしても下記のメッセージが出るだけです。下記はApacheが443番ポートで待ち受けていれば出ないメッセージであり、起動確認はしましたか? ここをクリアできれば終わったも同然で、httpsアクセスのひとつの肝です。ここをクリアできない限り、ブラウザでアクセスするフェーズにはいけません。

はい。
確認しております。
443がlisteningになってます。

> 1項は後でやればいいことですが、HPに書いてあるとおりで、2項と3項は意味をしっかり理解してくださいね。普通に暗号化したいだけなら絶対にやる必要のないことですから。
はい。
この辺は自分には必要ないと心得ており、あえて行っておりません。

>従って、Apacheだとうまくいかず、Apache2ではうまくいくという論議はありえず、自分がインストールしたディレクトリで作業してください。
はい。
できる限り現状をお伝えした方がよろしいかと思いまして、行った作業を記載しただけです。

>後、当然ですがregeditで「-D SSL」を追加してますよね。うまく動かないという話題は、普通、ここで躓いてエラーがでて443が起動しないという話題が出てくるのですが、ここでエラーの話が出ないで先のアクセスエラーになることは考えられないので、チャント「サービス起動の設定と起動」ができていないと思われます。
はい。
追加しております。

その他に考えられる事はありますでしょうか?


No.5332 投稿時間:2005年10月22日(Sat) 20:30 投稿者名:おやじ URL:
タイトル:https://ホスト名/でアクセスしてませんか?

> > その前に、「サービス起動の設定と起動」のところの作業をして、最後の起動確認をしましたか? これで、443がlistenになっていなければ、アクセスしても下記のメッセージが出るだけです。下記はApacheが443番ポートで待ち受けていれば出ないメッセージであり、起動確認はしましたか? ここをクリアできれば終わったも同然で、httpsアクセスのひとつの肝です。ここをクリアできない限り、ブラウザでアクセスするフェーズにはいけません。
>
> はい。
> 確認しております。
> 443がlisteningになってます。

この一言があれば、後の情報はなくてもいいくらいの情報です。というより、これがわかった時点でむしろ、「http:をhttps:で接続すると」と具体的なアクセス方法が書いていないことのほうが気になります。
443で起動できているので、普通にアクセスして接続できない理由はネットワークやファィヤウォールといった類しかないからです。
この「普通に」というところが問題で、サーバ機自身なら https://localhost/、それ以外のクライアントからなら https://サーバのプライベートアドレス(192.168.1.100等)/ でアクセスしているかです。
直感ですが、https://ホスト名/でアクセスしてませんか? httpができるからといって、httpsでホスト名でアクセスができる理由にはならないので・・。


No.5333 投稿時間:2005年10月22日(Sat) 23:59 投稿者名:rie URL:
タイトル:localhostでアクセスしてるんですが。。。

> この一言があれば、後の情報はなくてもいいくらいの情報です。というより、これがわかった時点でむしろ、「http:をhttps:で接続すると」と具体的なアクセス方法が書いていないことのほうが気になります。
> 443で起動できているので、普通にアクセスして接続できない理由はネットワークやファィヤウォールといった類しかないからです。
> この「普通に」というところが問題で、サーバ機自身なら https://localhost/、それ以外のクライアントからなら https://サーバのプライベートアドレス(192.168.1.100等)/ でアクセスしているかです。
はい。
元々は、サーバー機からは127.0.0.1でおこなっていたのですが、同じ事だと思いますが、https://localhost/でもやってみましたが、だめです。

セキュリティ警告のウィンドはでますが、

ページが見つかりません
検索中のページは、削除された、名前が変更された、または現在利用できない可能性があります。

--------------------------------------------------------------------------------

次のことを試してください:

アドレス バーにページ アドレスを入力した場合は、ページ アドレスを正しく入力したかどうかを確認してください。

127.0.0.1 ホーム ページを開いてから、表示する情報へのリンクを探してください。
別のリンク先を表示するには、[戻る] ボタンをクリックしてください。
[検索] ボタンをクリックして、インターネット上の情報を検索してください。

HTTP 404 - ファイル未検出
Internet Explorer

になってしまいます。

ちなみにですが、先程の
> ERROR
> The requested URL could not ・・・
> _____
>
> While trying to retrieve ・・・
> The following error ・・・
> Connection Failed
> The system returned:
> (110) Connection timed out
> The remote host or
は、外部からアクセスしたときのメッセージでした。
関係ないかもしれませんが。。。

なんでなのでしょう・・・


No.5334 投稿時間:2005年10月23日(Sun) 07:04 投稿者名:おやじ URL:
タイトル:ブラウザと証明書関係の問題です。

> > この一言があれば、後の情報はなくてもいいくらいの情報です。というより、これがわかった時点でむしろ、「http:をhttps:で接続すると」と具体的なアクセス方法が書いていないことのほうが気になります。
> > 443で起動できているので、普通にアクセスして接続できない理由はネットワークやファィヤウォールといった類しかないからです。
> > この「普通に」というところが問題で、サーバ機自身なら https://localhost/、それ以外のクライアントからなら https://サーバのプライベートアドレス(192.168.1.100等)/ でアクセスしているかです。
> はい。
> 元々は、サーバー機からは127.0.0.1でおこなっていたのですが、同じ事だと思いますが、https://localhost/でもやってみましたが、だめです。
>
> セキュリティ警告のウィンドはでますが、
>
> ページが見つかりません
> 検索中のページは、削除された、名前が変更された、または現在利用できない可能性があります。
>
> --------------------------------------------------------------------------------
>
> 次のことを試してください:
>
> アドレス バーにページ アドレスを入力した場合は、ページ アドレスを正しく入力したかどうかを確認してください。
>
> 127.0.0.1 ホーム ページを開いてから、表示する情報へのリンクを探してください。
> 別のリンク先を表示するには、[戻る] ボタンをクリックしてください。
> [検索] ボタンをクリックして、インターネット上の情報を検索してください。
>
> HTTP 404 - ファイル未検出
> Internet Explorer
>
> になってしまいます。
>
> ちなみにですが、先程の
> > ERROR
> > The requested URL could not ・・・
> > _____
> >
> > While trying to retrieve ・・・
> > The following error ・・・
> > Connection Failed
> > The system returned:
> > (110) Connection timed out
> > The remote host or
> は、外部からアクセスしたときのメッセージでした。
> 関係ないかもしれませんが。。。

またまた、新しい重要な情報がありました。初めからこのエラーメッセージは(家庭内で)どうやったら出るんだろうと少し疑問だったのですが、実はこのメッセージは外部からの話で、localhostでは「セキュリティ警告のウィンドがでる」では、情報認識が全く違ってしまいます。
初めに見せてもらったメッセージは、前にも書いたとおり443につながらないときのエラーなので、おやじはアクセスミスやファイヤウォールを疑いました。しかし、localhostでは「セキュリティ警告のウィンドがでるがその後接続できない。」となると話は全く違い、問題点は「Apache自体の設定もアクセス方法も問題はなく、証明書もApacheが動作するには問題はないがブラウザとの連携では問題ある。」に変わってしまいます。
新しいことをやる場合の全てに通じることですが、動作確認は関連事項が一番少ない形態で実施し、それをクリアしたらその先に進むというアプローチをしないと、絶対に問題解決ができません。WWWサーバなら下記のアプローチです。

http://www.aconus.com/~oyaji/router/www_tst.htm

localhostで動かないなら、その先をやることは意味がないですよね。今回は、その先の話から入ってしまったので、おやじは混乱しました。でも、もう気がつれたかもしれませんが、rieさんの環境は少なくとも2つ以上の問題(ブラウザと証明書の関係の問題と、外部からサーバに到達できないネットワーク的な問題)を抱えている可能性が大です。
まずはlocalhostですが、おやじが思いつくのは以下の2点ぐらいで、これで駄目だと、かなり核心に近いところまできているのですが、おやじの壊れかかったデータベースからは対応するものがでてきません。
・No.5046のスレにあるように、openssl0.9.8で証明書を作成したかどうかです。これは、最初のスレで環境を書いていただいたときに、openssl0.9.8と書かれていたのでもしやと思ったのですが、ブラウザにCA証明書を入れていないとのこと(ブラウザにインポートしていなければセキュリティ警告はでるがアクセスできる)で、おやじの中では原因から除外しました。恐らくチャントHPを見ていて、openssl0.9.7xで証明書の作業しているとおやじは思っています。
・もう一点は、ほとんど可能性はないと思っているのですが、ssl化は今回が初めてではなく、ブラウザに古い証明書がインポートされている、というもの。但し、この場合は警告は出ずにいきなり404エラーになってアクセスできなくなったと思うので、違うような気がします。


No.5335 投稿時間:2005年10月23日(Sun) 20:23 投稿者名:rie URL:
タイトル:Re: ブラウザと証明書関係の問題です。

> またまた、新しい重要な情報がありました。初めからこのエラーメッセージは(家庭内で)どうやったら出るんだろうと少し疑問だったのですが、実はこのメッセージは外部からの話で、localhostでは「セキュリティ警告のウィンドがでる」では、情報認識が全く違ってしまいます。

申し訳ありません。
きちんと最初からご報告するべきでした。

> 新しいことをやる場合の全てに通じることですが、動作確認は関連事項が一番少ない形態で実施し、それをクリアしたらその先に進むというアプローチをしないと、絶対に問題解決ができません。WWWサーバなら下記のアプローチです。
> http://www.aconus.com/~oyaji/router/www_tst.htm

本当に理解度が無く申し訳ありません。
http://scan.sygatetech.com/
にて、443がBLOCKEDになっていると駄目だという認識でよろしいでしょうか?
現在は、
HTTPS 443 BLOCKED This port has not responded to any of our probes. It appears to be completely stealthed.

となっています。

先走りですが、ルーターの設定で一応443を開放ししました。

HTTPS 443 CLOSED This port has responded to our probes. This means that you are not running any application on this port, but it is still possible for someone to crash your computer through known TCP/IP stack vulnerabilities.

と結果なっております。

> ・No.5046のスレにあるように、openssl0.9.8で証明書を作成したかどうかです。これは、最初のスレで環境を書いていただいたときに、openssl0.9.8と書かれていたのでもしやと思ったのですが、ブラウザにCA証明書を入れていないとのこと(ブラウザにインポートしていなければセキュリティ警告はでるがアクセスできる)で、おやじの中では原因から除外しました。恐らくチャントHPを見ていて、openssl0.9.7xで証明書の作業しているとおやじは思っています。

最初は0.9.8でやったのですが、その後に0.9.7eでやりましたが駄目でした。。。

> ・もう一点は、ほとんど可能性はないと思っているのですが、ssl化は今回が初めてではなく、ブラウザに古い証明書がインポートされている、というもの。但し、この場合は警告は出ずにいきなり404エラーになってアクセスできなくなったと思うので、違うような気がします。

今回がはじめてです。


No.5337 投稿時間:2005年10月24日(Mon) 18:34 投稿者名:おやじ URL:
タイトル:何かあるから駄目なのですが、思い当たる要因がなくなってきました。

> 本当に理解度が無く申し訳ありません。
> http://scan.sygatetech.com/
> にて、443がBLOCKEDになっていると駄目だという認識でよろしいでしょうか?

外部からのアクセス時はそうです。家庭内やlocalhostは関係ない話です。

> 現在は、
> HTTPS 443 BLOCKED This port has not responded to any of our probes. It appears to be completely stealthed.
>
> となっています。
>
> 先走りですが、ルーターの設定で一応443を開放ししました。
>
> HTTPS 443 CLOSED This port has responded to our probes. This means that you are not running any application on this port, but it is still
possible for someone to crash your computer through known TCP/IP stack vulnerabilities.
>
> と結果なっております。

確かに先走りかもしれませんが、ブラウザでアクセスはできなくてもセキュリティ警
告が出る状態、すなわち443番がlisten状態になっているなら、ポートフォワードし
てCLOSEDとなるのはおかしいです。Sygateの試験は単なるポートスキャンですから443番
でセッションが張れるだけでいいので、セキュリティ警告が出るのにopenにならな
いのは、別にNW上の問題があります。開放したと仰っている行為でBLOCKEDからCLOSED
になったので、恐らくサーバ機のFirewallが一番怪しいと思います。これは、これで
解決しないとインタネット上にhttpsでサーバ公開はできません。

> > ・No.5046のスレにあるように、openssl0.9.8で証明書を作成したかどうかです。これは、最初のスレで環境を書いていただいたときに、openssl0.9.8と書かれていたのでもしやと思ったのですが、ブラウザにCA証明書を入れていないとのこと(ブラウザにインポートしていなければセキュリティ警告はでるがアクセスできる)で、おやじの中では原因から除外しました。恐らくチャントHPを見ていて、openssl0.9.7xで証明書の作業しているとおやじは思っています。
>
> 最初は0.9.8でやったのですが、その後に0.9.7eでやりましたが駄目でした。。。

おやじの0.9.8なら問題ありません。もしそうなら、セキュリティ警告はでるがアクセス
できない状態は、おやじには思い当たる原因がなくなってしまい、おやじには解はありません。
何回もいろいろな環境でインストールしてますが、HPのとおりでうまくいかなかったことは
一度もないので、ここまで来ていて阻害される要因が思いつきません。
Firefox等のブラウザでテストするともう少し詳しい状況がエラー内容からわかると思います
ので、それでやってみる価値はありますが・・・。


No.5338 投稿時間:2005年10月24日(Mon) 21:50 投稿者名:rie URL:
タイトル:色々試してみます。

> 外部からのアクセス時はそうです。家庭内やlocalhostは関係ない話です。

外部からだけならまだしも、localhostじゃ当然関係ない話ですよね。。。

> 確かに先走りかもしれませんが、ブラウザでアクセスはできなくてもセキュリティ警
> 告が出る状態、すなわち443番がlisten状態になっているなら、ポートフォワードし
> てCLOSEDとなるのはおかしいです。Sygateの試験は単なるポートスキャンですから443番
> でセッションが張れるだけでいいので、セキュリティ警告が出るのにopenにならな
> いのは、別にNW上の問題があります。開放したと仰っている行為でBLOCKEDからCLOSED
> になったので、恐らくサーバ機のFirewallが一番怪しいと思います。これは、これで
> 解決しないとインタネット上にhttpsでサーバ公開はできません。

ですよね。。。
なんでなんでしょう。。。
Firewallを落としてやってみても結果同じでした。。。
Outpost Firewall 1.0を使ってます。

> おやじの0.9.8なら問題ありません。もしそうなら、セキュリティ警告はでるがアクセス
> できない状態は、おやじには思い当たる原因がなくなってしまい、おやじには解はありません。
> 何回もいろいろな環境でインストールしてますが、HPのとおりでうまくいかなかったことは
> 一度もないので、ここまで来ていて阻害される要因が思いつきません。
> Firefox等のブラウザでテストするともう少し詳しい状況がエラー内容からわかると思います
> ので、それでやってみる価値はありますが・・・。

了解しました。
もう一度、最初から試したり、Firefox等のブラウザで試したり、試行錯誤してみます。

ありがとうございます。
また、何か進展がありましたらご報告させていただきます。


No.5342 投稿時間:2005年10月28日(Fri) 23:12 投稿者名:rie URL:
タイトル:進展報告

進展がありましたのでご報告いたします。
外部からも内部からもSSLの設定成功しました。

最初からもう一度やってみまして、

内部からは、
1.FTPからOpenSSLを落としてみました。
2.ssl.confの設定をもう一度最初からやってみました。
これでlocalhostの内部からは成功しました。

外部からは、
1.FWをアンインストール、インストール
2.TCP/IPのパケットフィルタリングがかかっていたので解除
これで外部からも成功しました。

結局知識不足で特定原因がつかめなかったのですが、現在は快調に動作しております。

ですが、新たな問題がでてきましたので、ご教授いただけませんでしょうか?
ルート(?)ではSSLが動作するんですけど、ユーザディレクトリでは、https://のsを入れるとエラーになってしまいます。

下記にいくつか試した例を記載してみます。

http://127.0.0.1/ OK
https://127.0.0.1/ OK
http://127.0.0.1/~test/ OK
https://127.0.0.1/~test/ NG
http://127.0.0.1/user/test/public/ OK
https://127.0.0.1/user/test/public/ OK

ちなみにエラーは下記です。

ページが見つかりません
検索中のページは、削除された、名前が変更された、または現在利用できない可能性があります。
----------------------------------------
次のことを試してください:
アドレス バーにページ アドレスを入力した場合は、ページ アドレスを正しく入力したかどうかを確認してください。

127.0.0.1 ホーム ページを開いてから、表示する情報へのリンクを探してください。
別のリンク先を表示するには、[戻る] ボタンをクリックしてください。
[検索] ボタンをクリックして、インターネット上の情報を検索してください。
HTTP 404 - ファイル未検出
Internet Explorer


なぜかわかりますでしょうか?

実際に行っている設定を抜粋して下記に記述します。

vhost.conf
DocumentRoot "E:/www/public1"
<Directory "E:/www/public1">
UserDir "E:/www/public1/user/*/public"
<Directory "C:/www/public1/user/*/public">

ssl.conf
<VirtualHost _default_:443>
DocumentRoot "E:/www/public1"


No.5343 投稿時間:2005年10月29日(Sat) 07:37 投稿者名:おやじ URL:
タイトル:省略しすぎていて判断できません。

> 進展がありましたのでご報告いたします。
> 外部からも内部からもSSLの設定成功しました。
>
> 最初からもう一度やってみまして、
>
> 内部からは、
> 1.FTPからOpenSSLを落としてみました。
> 2.ssl.confの設定をもう一度最初からやってみました。
> これでlocalhostの内部からは成功しました。

よくわかりませんが、普通は証明書の作成を失敗していたり、設定ミス(証明書名の
ミススペル等)をしているとそもそも443番がLinten状態にならないので、やはり証明
書としては形式等は問題ないが中身がおかしいという状態にあったとしか思えないの
ですが・・。但し、後述の問題からすると、ssl.confの設定ミスでこのようになる可
能性があるのかもしれませんね。
まあ、うまくいかないときは、一度ははじめからやり直してみることですね。
>
> 外部からは、
> 1.FWをアンインストール、インストール
> 2.TCP/IPのパケットフィルタリングがかかっていたので解除
> これで外部からも成功しました。

参考になるかわかりませんが、下記を参考にしてもらえば少しはわかるかと思います。
基本的に3つのステータスがあります。

http://www.aconus.com/~oyaji/router/tcp.htm

・Open: SYN -> SYN/ACK とデーモン等が応答してきてセッション確立するケース。
・Refuse/Stealth等: SYN -> RST/ACK とファイヤウォール等が拒否してくるケース。
・Close: SYN に対して一切応答がなくタイムアウトしてしまうケース。

1番上は、デーモンがチャント動作していてそれが応答してくるケース。
2番目は、何らかのソフトなりルータが接続を拒否している状況で、localhostで問題ない
場合は、サーバ機のファイヤウォールかルータのファイヤウォールが拒否しているケース
がほとんど。
今回うまくいったのは、rieさんがやった上記の2番目でこれが解除されたためと思います。
3番目は、ルータでポートマッピングしていなかったり、マッピング先が間違っていてパケ
ットに誰も応答してくれないとこの状態になります。

> 結局知識不足で特定原因がつかめなかったのですが、現在は快調に動作しております。
>
> ですが、新たな問題がでてきましたので、ご教授いただけませんでしょうか?
> ルート(?)ではSSLが動作するんですけど、ユーザディレクトリでは、https://のsを入れるとエラーになってしまいます。
>
> 下記にいくつか試した例を記載してみます。
>
> http://127.0.0.1/ OK
> https://127.0.0.1/ OK
> http://127.0.0.1/~test/ OK
> https://127.0.0.1/~test/ NG
> http://127.0.0.1/user/test/public/ OK
> https://127.0.0.1/user/test/public/ OK
>
> ちなみにエラーは下記です。
>
> ページが見つかりません
> 検索中のページは、削除された、名前が変更された、または現在利用できない可能性があります。
> ----------------------------------------
> 次のことを試してください:
> アドレス バーにページ アドレスを入力した場合は、ページ アドレスを正しく入力したかどうかを確認してください。
>
> 127.0.0.1 ホーム ページを開いてから、表示する情報へのリンクを探してください。
> 別のリンク先を表示するには、[戻る] ボタンをクリックしてください。
> [検索] ボタンをクリックして、インターネット上の情報を検索してください。
> HTTP 404 - ファイル未検出
> Internet Explorer
>
>
> なぜかわかりますでしょうか?
>
> 実際に行っている設定を抜粋して下記に記述します。
>
> vhost.conf
> DocumentRoot "E:/www/public1"
> <Directory "E:/www/public1">
> UserDir "E:/www/public1/user/*/public"
> <Directory "C:/www/public1/user/*/public">

vhost.confというので、おやじのバーチャルホストを見てやられているように思いますが、
これで起動しますか?
起動しているなら、上記だと</Directory>もないので抜粋しすぎているはずで判断できません。
これなら、コメント行を除いて全て書いてもらったほうが早いです。
少なくとも、UserDirはDirectoryディレクティブの中に書くものではありません。DocumentRoot
ディレクティブと同列で書くだけで直るかもしれませんが、ディレクトリアクセス関係の全体の
妥当性がこれではよくわかりませんので、判断できません。
但し、404エラーになる場合は、ログをみると実際にアクセスしにいったディレクトリやファイルが
わかるので、URIで指定した内容と自分が期待した場所との違いがわかるので、その情報をもとに
解析して設定をいじってみると、設定とアクセスのロジックが見えてくると思います。

> ssl.conf
> <VirtualHost _default_:443>
> DocumentRoot "E:/www/public1"


No.5344 投稿時間:2005年10月29日(Sat) 11:13 投稿者名:rie URL:
タイトル:抜粋しなおしました

> 参考になるかわかりませんが、下記を参考にしてもらえば少しはわかるかと思います。
> 基本的に3つのステータスがあります。
>
> http://www.aconus.com/~oyaji/router/tcp.htm
>
> ・Open: SYN -> SYN/ACK とデーモン等が応答してきてセッション確立するケース。
> ・Refuse/Stealth等: SYN -> RST/ACK とファイヤウォール等が拒否してくるケース。
> ・Close: SYN に対して一切応答がなくタイムアウトしてしまうケース。
>
> 1番上は、デーモンがチャント動作していてそれが応答してくるケース。
> 2番目は、何らかのソフトなりルータが接続を拒否している状況で、localhostで問題ない
> 場合は、サーバ機のファイヤウォールかルータのファイヤウォールが拒否しているケース
> がほとんど。
> 今回うまくいったのは、rieさんがやった上記の2番目でこれが解除されたためと思います。
> 3番目は、ルータでポートマッピングしていなかったり、マッピング先が間違っていてパケ
> ットに誰も応答してくれないとこの状態になります。

何となく概要がわかりました。
やはり、2番の影響っぽいような気がしてきました。

> vhost.confというので、おやじのバーチャルホストを見てやられているように思いますが、
> これで起動しますか?

ここでいう起動とは、

> http://127.0.0.1/ OK
> https://127.0.0.1/ OK
> http://127.0.0.1/~test/ OK
> https://127.0.0.1/~test/ NG
> http://127.0.0.1/user/test/public/ OK
> https://127.0.0.1/user/test/public/ OK

のうちhttp://127.0.0.1/~test/ がOK、即ち表示されるということで起動と呼べますでしょうか?
当然、http://127.0.0.1/~a/ とかも、ディレクトリを作った分だけ表示されます。

が、https:// にするとユーザーディレクトリ設定に関しての表示はエラーになってしまいます。
sをつけないと普通に順調です。
ルートにs、即ちhttps://127.0.0.1/ はきちんと表示されるんですけどね。。。

> 起動しているなら、上記だと</Directory>もないので抜粋しすぎているはずで判断できません。
> これなら、コメント行を除いて全て書いてもらったほうが早いです。
> 少なくとも、UserDirはDirectoryディレクティブの中に書くものではありません。DocumentRoot
> ディレクティブと同列で書くだけで直るかもしれませんが、ディレクトリアクセス関係の全体の
> 妥当性がこれではよくわかりませんので、判断できません。

申し訳ありません
全部抜粋します。

<Directory "E:/www/public1">
Options FollowSymLinks IncludesNoExec
AllowOverride AuthConfig Limit
Order allow,deny
Allow from all
</Directory>
<Directory "E:/www/public1/cgi-bin/">
AllowOverride AuthConfig Limit
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

UserDir "E:/www/public1/user/*/public"
<Directory "E:/www/public1/user/*/public">
AllowOverride FileInfo AuthConfig Limit
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
<Directory "E:/www/public/user/*/public/cgi-bin/">
AllowOverride AuthConfig Limit
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

> 但し、404エラーになる場合は、ログをみると実際にアクセスしにいったディレクトリやファイルが
> わかるので、URIで指定した内容と自分が期待した場所との違いがわかるので、その情報をもとに
> 解析して設定をいじってみると、設定とアクセスのロジックが見えてくると思います。

2005/10/29,09:52:19,127.0.0.1,"hp","-","-",error,"E:/www/public1/test","","",-,0,"File does not exist","",""

というエラーが出ていたのですが、これはディレクトリの位置を四苦八苦しながら移動させたりしていたさいの、エラーだと思われます。
実際にsをいれなくてもエラーがでてしまい、Apacheの再起動忘れで解決したエラーだと思われます。
それ以降のエラーログが出ていません。


No.5345 投稿時間:2005年10月29日(Sat) 13:01 投稿者名:おやじ URL:
タイトル:configは問題ないですね。

> > vhost.confというので、おやじのバーチャルホストを見てやられているように思いますが、
> > これで起動しますか?
>
> ここでいう起動とは、

443番でApacheが起動しますか? という意味で、書かれていた状態では起動しないはずなので書いたまでで、実際の設定は違っていたので気にする必要はないです。

> > http://127.0.0.1/ OK
> > https://127.0.0.1/ OK
> > http://127.0.0.1/~test/ OK
> > https://127.0.0.1/~test/ NG
> > http://127.0.0.1/user/test/public/ OK
> > https://127.0.0.1/user/test/public/ OK
>
> のうちhttp://127.0.0.1/~test/ がOK、即ち表示されるということで起動と呼べますでしょうか?
> 当然、http://127.0.0.1/~a/ とかも、ディレクトリを作った分だけ表示されます。
>
> が、https:// にするとユーザーディレクトリ設定に関しての表示はエラーになってしまいます。
> sをつけないと普通に順調です。
> ルートにs、即ちhttps://127.0.0.1/ はきちんと表示されるんですけどね。。。
>
> > 起動しているなら、上記だと</Directory>もないので抜粋しすぎているはずで判断できません。
> > これなら、コメント行を除いて全て書いてもらったほうが早いです。
> > 少なくとも、UserDirはDirectoryディレクティブの中に書くものではありません。DocumentRoot
> > ディレクティブと同列で書くだけで直るかもしれませんが、ディレクトリアクセス関係の全体の
> > 妥当性がこれではよくわかりませんので、判断できません。
>
> 申し訳ありません
> 全部抜粋します。

ひとつ重要な点を見落としていました。http://127.0.0.1/~test/ がOKで、https://127.0.0.1/~test/ がNGということ。
下記の設定とも関係してますが「~」が駄目というのはUserDirに関する設定なので、httpがOKなら普通httpsも行くはずなのですが。
何故なら、単純にhttpsはhttpのホストと同じコンテンツを暗号化するだけなら、httpd.confで下記の設定がされていれば、ssl.confではDocumentRootさえ書いてあれば、下の設定は一切いらないからです。
見たところ、404になる要素はなさそうなので、全くおなじ設定(httpのみに追加した場合とhttpsにも追加した場合)で動かしてみましたが、問題はないですね。
ログがないというのも気になるので、実はキャッシュを見ているということはないですか? 画面上で「最新の情報に更新」して、ログが確実に出ていることを確認しながらやらないと何を試験しているかわからなくなりますよ。
ところで、下記はssl.confの内容ですか? どちらでも関係ないと言えばないのですが、参考までに教えてください。

> <Directory "E:/www/public1">
> Options FollowSymLinks IncludesNoExec
> AllowOverride AuthConfig Limit
> Order allow,deny
> Allow from all
> </Directory>
> <Directory "E:/www/public1/cgi-bin/">
> AllowOverride AuthConfig Limit
> Options ExecCGI
> Order allow,deny
> Allow from all
> </Directory>
>
> UserDir "E:/www/public1/user/*/public"
> <Directory "E:/www/public1/user/*/public">
> AllowOverride FileInfo AuthConfig Limit
> Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
> <Limit GET POST OPTIONS PROPFIND>
> Order allow,deny
> Allow from all
> </Limit>
> <LimitExcept GET POST OPTIONS PROPFIND>
> Order deny,allow
> Deny from all
> </LimitExcept>
> </Directory>
> <Directory "E:/www/public/user/*/public/cgi-bin/">
> AllowOverride AuthConfig Limit
> Options ExecCGI
> Order allow,deny
> Allow from all
> </Directory>
>
> > 但し、404エラーになる場合は、ログをみると実際にアクセスしにいったディレクトリやファイルが
> > わかるので、URIで指定した内容と自分が期待した場所との違いがわかるので、その情報をもとに
> > 解析して設定をいじってみると、設定とアクセスのロジックが見えてくると思います。
>
> 2005/10/29,09:52:19,127.0.0.1,"hp","-","-",error,"E:/www/public1/test","","",-,0,"File does not exist","",""
>
> というエラーが出ていたのですが、これはディレクトリの位置を四苦八苦しながら移動させたりしていたさいの、エラーだと思われます。
> 実際にsをいれなくてもエラーがでてしまい、Apacheの再起動忘れで解決したエラーだと思われます。
> それ以降のエラーログが出ていません。


No.5346 投稿時間:2005年10月29日(Sat) 14:42 投稿者名:rie URL:
タイトル:VirtualHost無しならいけました。

> ところで、下記はssl.confの内容ですか? どちらでも関係ないと言えばないのですが、参考までに教えてください。
vhost.confです。

おやじさま。
取り急ぎログの件はまだ手をつけてないのですが、vhost.confの設定を切て、httpd.conf単体でバーチャルホストの設定は一切なしで試したところできました。

http://127.0.0.1/~test/ OK
https://127.0.0.1/~test/ NG
だったのが、どっちでもいけました。

下記に関連記述を記載します。

<Directory "E:/www/public1/user/*/public">
AllowOverride FileInfo AuthConfig Limit
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

<Directory "E:/www/public1/cgi-bin/">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
<Directory "E:/www/public1/user/*/public">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

でもvhost.confでのInclude conf/vhost.confさせるとだとだめなのでしょうか?
それともそもそもバーチャルホスト自体ではだめなんでしょうか?
どっちもそんなことないですよね?

違いが分からず、しかも頭の中が混乱してきました。。。


No.5347 投稿時間:2005年10月29日(Sat) 14:55 投稿者名:rie URL:
タイトル:追記

関係ないかもしれないですが、vhost.confでのIncludeさせて、いたので、今までは、httpd.confでは、DirectoryやUserDir、即ち先程からご報告させていただいている記述は全部コメントアウトしておりました。

これって今回の件と関係ありますか?
今回は試しにvhost.confでのIncludeを外し、httpd.conf単独で行ったので、コメントアウトを外してみました。

ので、今までは、ServerAdmin ServerName DocumentRoot の三つのみhttpd.confで設定しておりましたが、あとは全部vhost.conf側で行っていました。

関係ありますかね?

でもSSL以外は普通に正常に動作していたので関係ないですかね。。。


No.5348 投稿時間:2005年10月29日(Sat) 18:53 投稿者名:おやじ URL:
タイトル:バーチャルホストの場合は、ssl.confにもUserDir関係の設定を書かないと駄目です。

> でもvhost.confでのInclude conf/vhost.confさせるとだとだめなのでしょうか?
> それともそもそもバーチャルホスト自体ではだめなんでしょうか?
> どっちもそんなことないですよね?

設定だけの問題ですが・・・・・。
恐らく、やろうとしているのは名前ベースのバーチャルホスト(複数ドメインであるがIPアドレスは1個)と思いますが、下記にも書きましたが、バーチャルホストを設定した段階でhttp.confで設定しているservername等は無視されて、vhost.confに書かれたホストのみが有効になります。また、名前ベースのバーチャルホスト環境でのSSL接続は仕組み上一番最初のバーチャルホストの証明書が使用されるので、2番目以降のホストはいくらCA証明書をクライアントに入れても、ホスト名が違うというエラーが出てしまいます。
このあたりを踏まえてもバーチャルホストをやらなければならないのかは、一度考えてください。

http://www.aconus.com/~oyaji/www/apache_win_virtual.htm

仮にやるとした場合ですが、バーチャルホストの場合は、ssl.confにもUserDir関係の設定を書かないと駄目です。恐らくこれが原因だと思います。


No.5349 投稿時間:2005年10月29日(Sat) 20:43 投稿者名:rie URL:
タイトル:ssl.confにもUserDir必要だったのですね。。。

> 恐らく、やろうとしているのは名前ベースのバーチャルホスト(複数ドメインであるがIPアドレスは1個)と思いますが、

はい。そうです。

下記にも書きましたが、バーチャルホストを設定した段階でhttp.confで設定しているservername等は無視されて、vhost.confに書かれたホストのみが有効になります。また、名前ベースのバーチャルホスト環境でのSSL接続は仕組み上一番最初のバーチャルホストの証明書が使用されるので、2番目以降のホストはいくらCA証明書をクライアントに入れても、ホスト名が違うというエラーが出てしまいます。
> このあたりを踏まえてもバーチャルホストをやらなければならないのかは、一度考えてください。
>
> http://www.aconus.com/~oyaji/www/apache_win_virtual.htm

はい。ここは何度も読んでいたので理解しています。
なので、バーチャルホストの組み方の順番を変えて、SSL化させたいのを一番上に持ってきてました。

> 仮にやるとした場合ですが、バーチャルホストの場合は、ssl.confにもUserDir関係の設定を書かないと駄目です。恐らくこれが原因だと思います。

ssl.confにUserDir関係の設定を書かないと駄目だったんですね。。。

今すぐ作業に取り掛かり、またご報告させていただきます。


No.5350 投稿時間:2005年10月29日(Sat) 21:12 投稿者名:rie URL:
タイトル:ssl.confにUserDir関係の記述をしたらできました

おやじさま。
ありがとうございます。

やっとゴールに辿り着きそうです。

というより本来であれば、これでゴールなのでしょうが、一点ご教授いただければと思います。

ssl.confの設定をどう変更したのか記載します。

<Directory "c:/apache/cgi">
SSLOptions +StdEnvVars
</Directory>



#<Directory "c:/apache/cgi">
# SSLOptions +StdEnvVars
#</Directory>

でコメントアウト。

ssl.confでのUserDir関係をどう記述したらいいのか分からなかったので、とりあえず、<VirtualHost *:80>から</VirtualHost>のログ以外の、先程ご報告させて頂いた記述をそのままコピペで、

<Directory "E:/www/public1">
Options FollowSymLinks IncludesNoExec
AllowOverride AuthConfig Limit
Order allow,deny
Allow from all
</Directory>
<Directory "E:/www/public1/cgi-bin/">
AllowOverride AuthConfig Limit
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

UserDir "E:/www/public1/user/*/public"
<Directory "E:/www/public1/user/*/public">
AllowOverride FileInfo AuthConfig Limit
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
<Directory "E:/www/public/user/*/public/cgi-bin/">
AllowOverride AuthConfig Limit
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

を、コメントアウトした、

#<Directory "c:/apache/cgi">
# SSLOptions +StdEnvVars
#</Directory>

のすぐ下に貼り付けました。

これで動くようにはなったのですが、少々不安でしたので問題ないのか、もしくはもう少しこうした方がいいとか、間違えがあればご教授いただければと思います。

よろしくお願いします。


No.5352 投稿時間:2005年10月30日(Sun) 08:07 投稿者名:おやじ URL:
タイトル:まずは、よかったですね。

> やっとゴールに辿り着きそうです。

まずは、よかったですね。
自分の目の前にあるわけではないため、リモートではいろいろ限界がありますね。
サーバを自分で運用していくには、実際に触っているrieさんががんばるしかないので、これからもいろいろと勉強していくことを薦めます。
また、サーバを再インストールする羽目になったときにも、今回の件を踏まえて再現できるよう、インタネットデビューしていないなら、もう少し弄り回してみて自分の物にすることを薦めます。もちろん、confファイルのバックアップは絶対に。

> というより本来であれば、これでゴールなのでしょうが、一点ご教授いただければと思います。
>
> ssl.confの設定をどう変更したのか記載します。
>
> <Directory "c:/apache/cgi">
> SSLOptions +StdEnvVars
> </Directory>
>
> を
>
> #<Directory "c:/apache/cgi">
> # SSLOptions +StdEnvVars
> #</Directory>
>
> でコメントアウト。
>
> ssl.confでのUserDir関係をどう記述したらいいのか分からなかったので、とりあえず、<VirtualHost *:80>から</VirtualHost>のログ以外の、先程ご報告させて頂いた記述をそのままコピペで、
>
> <Directory "E:/www/public1">
> Options FollowSymLinks IncludesNoExec
> AllowOverride AuthConfig Limit
> Order allow,deny
> Allow from all
> </Directory>
> <Directory "E:/www/public1/cgi-bin/">
> AllowOverride AuthConfig Limit
> Options ExecCGI
> Order allow,deny
> Allow from all
> </Directory>
>
> UserDir "E:/www/public1/user/*/public"
> <Directory "E:/www/public1/user/*/public">
> AllowOverride FileInfo AuthConfig Limit
> Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
> <Limit GET POST OPTIONS PROPFIND>
> Order allow,deny
> Allow from all
> </Limit>
> <LimitExcept GET POST OPTIONS PROPFIND>
> Order deny,allow
> Deny from all
> </LimitExcept>
> </Directory>
> <Directory "E:/www/public/user/*/public/cgi-bin/">
> AllowOverride AuthConfig Limit
> Options ExecCGI
> Order allow,deny
> Allow from all
> </Directory>
>
> を、コメントアウトした、
>
> #<Directory "c:/apache/cgi">
> # SSLOptions +StdEnvVars
> #</Directory>
>
> のすぐ下に貼り付けました。
>
> これで動くようにはなったのですが、少々不安でしたので問題ないのか、もしくはもう少しこうした方がいいとか、間違えがあればご教授いただければと思います。

間違いはないですがこういうケース、即ち全く同じ内容で何か変更したら同時に修正が必要な場合、修正ミスや修正忘れを起こしがちなので、おやじはこれらを新しいひとつのconfファイル(ex. oyaji.conf)に書き、修正はそのファイルに対して行うようにし、vhost.confとssl.confでIncludeするようにしています。
上記は単に運用上の話なのでどうでもいいですが、混乱するので全てが片付いてからいうつもりだったことが一点あり、これはまた動かない話(CGIに関する件)になります。その内容については、下記を見てもらえばわかります。

http://www.aconus.com/~oyaji/tips/apache_tips3.htm


No.5355 投稿時間:2005年10月30日(Sun) 19:34 投稿者名:rie URL:
タイトル:はい。ありがとうございます。

> まずは、よかったですね。
> 自分の目の前にあるわけではないため、リモートではいろいろ限界がありますね。
> サーバを自分で運用していくには、実際に触っているrieさんががんばるしかないので、これからもいろいろと勉強していくことを薦めます。
> また、サーバを再インストールする羽目になったときにも、今回の件を踏まえて再現できるよう、インタネットデビューしていないなら、もう少し弄り回してみて自分の物にすることを薦めます。もちろん、confファイルのバックアップは絶対に。

はい。
アドバイスありがとうございます。
本当にお世話になりました。

> 上記は単に運用上の話なのでどうでもいいですが、混乱するので全てが片付いてからいうつもりだったことが一点あり、これはまた動かない話(CGIに関する件)になります。その内容については、下記を見てもらえばわかります。
>
> http://www.aconus.com/~oyaji/tips/apache_tips3.htm

ScriptAliasで影響がでるようですね。
上記、参考にさせていただきます。



掲示板▲頁先頭