じぇ〜むすさん、
よかったですね。
Orenosp,DeleGateでのページが見つからない話は、いとさんが言うように、ちょっと原因が別にあるのだろうと思います。とりあえずバーチャルホストを使わずに試してみるのがいいのではないでしょうか(?)。
じぇ〜むすさん
バーチャルホストを使われていたのですね。見落としていました。
じぇ〜むすさんの現在の状況は仮想パスだから動かないのではなく、
バーチャルホストのときの DeleGateのcfgファイルの設定に問題が
あるのだと思います。
今の設定
MOUNT="/* http://192.168.0.1/* vhost=-test.com"
では、https://test.com/* へのアクセスに対してDeleGateが URLを
http://192.168.0.1/* に置き換え AN HTTPDに引き継ぎます。
ところが AN HTTPDのバーチャルホストは IPアドレスでアクセスすると
IPアドレスが一致する一番上のホストが選択されます。
多分バーチャルホストの設定で test.com より上に別のホストがあり、
そこには /web1 がないので 404エラーになっているのだと推測します。
試しに test.com を一番上に移せば確認できるかと思います。
問題なければバーチャルホストの設定内容を書いてもらえるといいのですが。
バーチャルホストの場合、https://test.com/ ではアクセスできて
http://test.com/ ではアクセスできなくするとか、いろいろと
特有な問題もありそうなのでもう少し調べてみようと思っています。
中田さん、通りがかりさん、菅野さん、いとさん
いろいろと、ご教授ありがとうございました。
やっとhttps(SSL)の動作に成功しました。
ご紹介頂いた色々なプロクシをテストした結果、最終的に私の環境では菅野さんのページで紹介されている「AN HTTPD + OpenSSL + Stone」を使用することにしました。
(菅野さんの言う通りに「\usr\local\ssl\certs\」ファルダを作成して「stone.pem」キーファイルを作成することで、動作することが出来ました。いろいろ、ご迷惑おかけ致しました。)
また、ご紹介頂いたDeleGateとOrenospで、気付いた点が有りましたので、ご報告したいと思います。
Orenosp・DeleGate(いとさん、有難うございます。)ともにSSLの設定&セットアップを簡単にすることが出来たのですが、下記のようにAN HTTPD等を設定して、「https://test.com/」と「https://test.com/web/」にアクセスするとで正しくページが表示されるのですが、仮想パスである「https://test.com/web1/」にアクセスすると、キーの確認メッセージが出た後に「ページが見つかりません」と表示されてしまいます。
この問題は、Stoneを使用したときには起こらず「https://test.com/web1/」でも、正しくページを表示させることができたのですが、Orenosp・DeleGateは、ともにこの問題が起こり表示できませんでした。
Orenosp・DeleGateを使ってSSLを使用する方は注意した方がいいと思います。
P.S.
皆さん色々ありがとうございました。
中田さんAN HTTPDのSSL化頑張ってください。影ながら応援しています。
・AN HTTPDの設定※index.htmlファイルが「C:\InterNetWeb\」と「C:\InterNetWeb\web\」「C:\TestWeb\」に保存されています。
ドキュメントルート C:\InterNetWeb\
デフォルトインデックス index.html
ローカルフォルダ C:\InterNetWeb\web\
仮想パス /web1
仮想パスのローカルアドレス C:\TestWeb\
-P443※192.168.0.1はローカルホストのIPアドレスです。
SERVER=https
FCL=sslway
MOUNT="/* http://192.168.0.1/* vhost=-test.com" #サーバへの全アクセスを SSL通信する
REACHABLE=192.168.0.1 #MOUNTしたホストに応じて変更する
RELIABLE="*"
ADMIN=user@host.domain.jp
じぇ〜むすさん、
-config オプションや設定ファイルの中で c:\Program Files などの空白を含むパス名を使う時は注意が必要です。
たとえば req -config c:\Program Files\... などとしてしまったら Files\... などというオプションはない、というエラーになるでしょう。 ' ' か " " でくくる必要があると思います。
もっとも、わざわざ面倒なことをしなくてもという気がします。
stone の方は、ヘッダファイルで固定されているようですね。stone のソースの openssl 内の opensslconf.h を変更するか OPENSSLDIR を定義して Make すればいいのでしょう。
じぇ〜むすさん
Stone, Orenosp とプロクシが出てきたので、それでは DeleGateはどうかと思い
試してみました。結果として AN HTTPD+DeleGate+OpenSSLでも動作することを
確認しました。以下に手順をまとめましたので、よければ参考にしてください。
http://homepage1.nifty.com/yito/anhttpd/faq/delegate-ssl.html
中田さん、
すいません。私の説明不足&理解不足ですね。
設定等は、もちろん菅野さんのページのようにフォルダやファイル名・コマンド等を同じように設定したのですが、キーを作成させることが出来ず、「openssl.cnfファイルがありません。」と言うようなエラーが英文で出て来ます。
そこで、前回話していた「-config」で回避したのですが、それと同時に菅野さんのページでは書かれていないOpenSSLのフォルダを「C:\Program Files\OpenSSL\」変更(これが一番の問題だったようです。)してしまったと言うことだったみたいです。
※動作確認は、まだしていませんが近日中にしたいと思います。
私の考えでは、最終的に菅野さんのページで紹介されている「C:\usr\local\」フォルダを使わないで任意のフォルダを使いたいと考えているので(出来るか解りませんが・・・)、通りがかりさん・菅野さんからご紹介いただいたソフトでも私の考えが出来るか検討してみたいと思います。
また、通りがかりさん・菅野さんからご紹介いただいたソフトの動作確認等が終わりましたら、またご報告したいと思います。
以上、ありがとうございました。
通りがかりさん、
菅野さん、
ありがとうございます。
そうですか、stone.pemファイルは\usr\local\ssl\certs\stone.pem以外では使用できないんですね。解りました有難うございます。
openssl.cnfファイルの中を変更するか、キーの作成方法を変更すれば動くかなって思っていたのですがフォルダ等が決まっていたんですね。
出来れば、任意のフォルダにキーを設定したいので、通りがかりさんや菅野さんに紹介していただいたソフトできるか、テストして見たいと思います。
情報ありがとうございました。
P.S.
私の考えでは、OpenSSLは、SSLのキー作成に使用するソフトで、キーファイルを特定の場所に置く事で動作させることが出来るものと考えているのですが、もし、バーチャルホストを使用していた場合等はエイリアスで仮想パスなどを指定(/ssl等)しなくても良いんですかね・・・?変な質問ですいません。自分で調べてみます。
じぇ〜むすさん、
そういう話なら、OpenSSLをまともに動かせていないということになりますね。
「設定できない」というばかりでは進展しません。その時にエラーメッセージが出ているのでしょうから、そのエラーメッセージを読んで考えてみた方がよいでしょう。
とりあえずは、
「最初にOpenSSL for Win32 on Mingw32/CygwinというOpenSSLのWindowsバイナリを
http://www.kix.or.jp/~fujino/openssl/index-ja.htmlより完全版バイナリ版をダウンロードし、解凍します。
SSLというフォルダが作成されるのでC:\usr\localというようにフォルダを作成し、localフォルダの中に先ほどのSSLフォルダをコピーします。」
と書いてあるのですから、その通りちゃんとやることだと思います。
じぇ〜むす さん
stone.pemファイルは必ず\usr\local\ssl\certs\stone.pemでなければなりません。
OpenSSLが上手く動作しないのであればEasyCertというツールを使うという方法もあります。
EasyCertで作成した公開鍵と公開局でも問題なく動作したというご報告を頂いております。
できればstoneのバージョンは2.1wを利用してください。
このバージョンが一番安定して動作します。
じぇ〜むすさん、
AN HTTPのSSL化はOrenospというプロキシでも可能ですよ。http://hp.vector.co.jp/authors/VA027031/orenosp/index_jp.html
自宅ではこれを使っています。
中田さん、ありがとうございます。
実は http://www.zeratinman.net/ssl/NT.html のページですが私の環境では同じにように設定することが出来ず、key.txt と ca.txt を作ることが出来ませんでした。
そこで、http://october.servehttp.com/openssl_win_inst.htm を参考に -config のオプションを追加して key.txt と ca.txt 作成したのですが、これでもうまく動作することが出来ませんでした。
stone の設定も -dddd を付けて動作させて見たのですが、ログは前回お話した状況と変わらずOpenSSLの設定かなと思ったしだいです。
設定間違いがないか、もう一度確認してから、参考ページの方にも質問して、問題が解決しましたら、またこちらに内容をご報告したいと思います。
また何かお気づきの点ありましたら、お教えください。宜しくお願い致します。
じぇ〜むすさん、
私は stone + OpenSSL は試してみたことはないのでわかりませんが、
自分でCAを立ててやるケースでしょうから、たぶん stone がサーバの証明書をクライアントに送るのだと思います。
それができていないようですから、確かに OpenSSLまわりがおかしいのでしょう。
stone では -dddd と d を重ねれば詳しいログがでるようですから、それを手がかりに調べるのがいいのではないでしょうか。
また、よくわからない場合は、とりあえず http://www.zeratinman.net/ssl/NT.html とまったく同じようにすればいいのではないかとも思います。。
key.txt と ca.txt を一緒にして SSLフォルダ中の certs フォルダに stone.pem として保存、と書いてありますが、そのようにしてもうまくいかない、という話ですか?
そのページは 2003/2/3 にも修正されているようですし、意見や感想はメールか掲示板にと書いてありますから、そちらで質問してみる方が早いかもしれませんね。
解決したら、その内容を教えてください。
中田さんこんばんわ。
早速ですが、認証のウィンドウは出てきません。また、stone のログにもエラーは出てきません。
stone のアクセスログは、https://localhost/ にアクセスすると
Feb 21 12:32:39 443[164] 127.0.0.1[127.0.0.1]3994
の様な形でログが残り、エラー用のログファイルには、何も保存されていない状況です。
そこで、私が今考えているのは、OpenSSLで作成したSSLキーファイルの位置か、キーファイル作成の方法もしくは、OpenSSLの設定が間違っているのではないかと考えています。
過去ログを確認しましたがSSLのお話で、そのあたりのコメントを発見できず、アドバイスいただけたらと思います。
また何かお気づきの点がありましたら、お教えください。宜しくお願い致します。
じぇ〜むすさん、
stone が ポート443 へのリクエストを受けて証明書のダイアログ(「証明書に問題はあるが、続行しますか?」というウィンドウ)は出るのですか?
それで「はい」とすれば、以後のSSLのデータをstoneがデコードして AN HTTPD のポート80へ送るというだけですよね。
AN HTTPD にデータ(リクエスト)がこないとすれば stone か OpenSSLの設定の問題でしょう。
stone のログにエラーは出ていないのでしょうか?
初めて投稿いたします。
中田さんには非常に良いソフトを作成していただき、この場を
お借りして感謝いたします。
現在、特定のホームページ(バーチャルドメイン)でSSLを使用したい
と考えています。
下記のページを参考にセットアップをしていたのですが、OpenSSL
の使用方法が違うのか、うまく動作させることが出来ません。
今、よく解ってないことはOpenSSLによって作成される暗号キーを
どこの場所に保存すれば良いのか、と言うことです。
OpenSSLの設定は、下記ページを参考に
「C:\usr\local\ssl\certs\stone.pem」の部分の「C:\usr\local\」
の部分を「C:\Program Files\OpenSSL\」に置き換えて設定をして
います。
Stoneの設定は、「-d」のコマンドを削除して、アクセスログを
取得するように「-a C:\\svcstone\\log\\stone_acc.txt」とエラー
ログを取得するように「-L C:\\svcstone\\log\\stone_err.txt」
の行を追加しています。
Stoneのアクセスログを見る限りでは、https://localhost/ に
アクセスするとログが残るので、Stoneは、動作しているようですが、
AN HTTPDのアクセスログの方には、何も残らないで、動作して
いない状態です。
と、ここまでの部分までは、大体分ってきたのですが、最後の
一ひねり?を、宜しくご教授お願い致します。
P.S.
下記以外の参考ページも有りましたら、ご紹介していただけると
助かります。
長文駄文、失礼致しました。
・参考にしたページ(AN HTTPD + OpenSSL + Stone)
http://www.zeratinman.net/ssl/NT.html
http://october.servehttp.com/openssl_win_inst.htm
・動作テスト環境
WindowsXP Pro SP1
ActivePerl 5.6.1
AN HTTPD 1.42h
OpenSSL 0.9.7
Stone 2.1x (stoneNTサービス版)