何度かご指導いただいたmiyokomikiです。最後の目標?SSLの設定で「かいもく」検討がつかないのでご教授頂こうと投稿しました。
環境:Windows2000sp4 Apache_2.0.48-Openssl_0.9.7c-Win32(貴HP指示のHPよりDL)
ActivePerl-5.8.0.806-MSWin32-x86
1 設定についいて:貴HPの「SSLによるSecureWWWサーバの構築(Windows編)」を見ながら、忠実に設定(鍵・証明書作成は「設定2」)しました。
但し、「設定2」1項で「デフォルトでは C:\OpenSSL になるが、システムドライブのルートにする。」という所で「なぜシステムドライブ(c:\)なの?と思いました。(インストーラで「c:\」を指定すると前に進まないので「ディフォルト」のままにしました(Opensslは同版をインストール)。
2 その後は記述の通りです(Apache2のディレクトリ構成も元々同じです)。httpd.confは、元々利用していたものを私の環境は維持しつつ指示どおり修正しました。
3 ssl.confも記述の通り修正しました。なお、ドキュメントルートは/htdocsのままです(httpd.confも同様)。
4 Perlも記述どおり「c:\usr\local」へインストール(起動確認済み)。
5 なお、私のHPはXoops2.0.5で作成しています。
6 現状:当初文法エラーが出ましたが(タイプミス等)今はエラーは出ません。「netstat -an」で見ると、
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING
と出ます(一部略)
7 この状態で自HPを見てもブラウザに何の変化もありません。(えっ?これってSSLが働いていないの?)『警告」も何も出ません。
以上ですが、何かお気づきの事がありましたら、お願い申し上げます。(長文失礼しました)
こんにちは。
> 1 設定についいて:貴HPの「SSLによるSecureWWWサーバの構築(Windows編)」を見ながら、忠実に設定(鍵・証明書作成は「設定2」)しました。
> 但し、「設定2」1項で「デフォルトでは C:\OpenSSL になるが、システムドライブのルートにする。」という所で「なぜシステムドライブ(c:\)なの?と思いました。(インストーラで「c:\」を指定すると前に進まないので「ディフォルト」のままにしました(Opensslは同版をインストール)。
確かに誤解されますね。下を見てもらえれば、普通ならそのまま進んでもらえると思いますが、おやじが、デュアルブートでDドライブに2Kが入っているのでそのときは、D:\OpenSSLにしないとだめというつもりで書いたものです。修正しておきます。
> 2 その後は記述の通りです(Apache2のディレクトリ構成も元々同じです)。httpd.confは、元々利用していたものを私の環境は維持しつつ指示どおり修正しました。
> 3 ssl.confも記述の通り修正しました。なお、ドキュメントルートは/htdocsのままです(httpd.confも同様)。
> 4 Perlも記述どおり「c:\usr\local」へインストール(起動確認済み)。
> 5 なお、私のHPはXoops2.0.5で作成しています。
> 6 現状:当初文法エラーが出ましたが(タイプミス等)今はエラーは出ません。「netstat -an」で見ると、
> Active Connections
> Proto Local Address Foreign Address State
> TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
> TCP 0.0.0.0:443 0.0.0.0:0 LISTENING
> と出ます(一部略)
> 7 この状態で自HPを見てもブラウザに何の変化もありません。(えっ?これってSSLが働いていないの?)『警告」も何も出ません。
6項で、443がListeningになっているので完全にSSL対応で動いていますね。
https://もしくは、http://・・・:443でアクセスしてます? 初回アクセスで警告がでるはずです。証明書をHPにあるとおりの方法で、インストールしてください。
miyokomikiです。早速のご指導ありがとうございました。
>確かに誤解されますね。
アー、そうでしたか?安心しました。良かった。
>6項で、443がListeningになっているので完全にSSL対応で動いていますね。
>https://もしくは、http://・・・:443でアクセスしてます? 初回アクセスで警告がでるはずです。証明書を
>HPにあるとおりの方法で、インストールしてください。
暗号化を確認いたしました。大変ありがとうございます。やはり、基礎的な知識を勉強しないとだめなことを痛感しました。
私の今までの認識としましては、
サーバが常に暗号化発信で待ち受けているのかと思いました。というのは、オンラインバンクにアクセスするときは、いつもの通り当該HPにアクセスして、識別・認証されると暗号化のサイン(アイコン)が「128」になって暗号化通信しているので、そのような状況になるのだと思いました。(そういう動作にしたいのではありますが)
そこの仕組みが良くわかっていないようです。Googleなどで検索して勉強します。
最後にもう一度、「ありがとうございました」。
> 暗号化を確認いたしました。大変ありがとうございます。やはり、基礎的な知識を勉強しないとだめなことを痛感しました。
> 私の今までの認識としましては、
> サーバが常に暗号化発信で待ち受けているのかと思いました。というのは、オンラインバンクにアクセスするときは、いつもの通り当該HPにアクセスして、識別・認証されると暗号化のサイン(アイコン)が「128」になって暗号化通信しているので、そのような状況になるのだと思いました。(そういう動作にしたいのではありますが)
> そこの仕組みが良くわかっていないようです。Googleなどで検索して勉強します。
> 最後にもう一度、「ありがとうございました」。
おやじがやっている、同様のテクニックです。パスワード入力したりするページやディレクトリにアクセスしたときに、httpでアクセスしたら自動でhttpsにrewriteして暗号化する方法です。
hunterのものはrewriteが使えるので簡単にできます。試してみてはどうですか?これで、設定したページに普通にhttpでアクセスすると自動的にhttpsに変化します。
1. mod_rewriteモジュールを有効にする。
httpd.confの
LoadModule rewrite_module modules/mod_rewrite.so
のコメントアウト(行頭の#)を外す。
2. httpd.confの適当な場所に以下を追加する。
上のブロックは、rewrite用の基本的な設定。RewriteLogLevel は1にするだけで膨大なログが出るので、デバッグが終わったら0にしないと大変。
下のブロックの1行目は、443番ポートへのアクセスでは無かったら以下のルールを適用するという意味。即ち、httpsでなかったら、という意味。
2行目は、/hogehogeというディレクトリ配下にアクセスがあった場合は、そのままhttpsにredirectする方法。
3行目は、おやじのhimitsuディレクトリ内のhimitsu.cgiにアクセスしたときだけhttpsにredirectする方法。himitsuディレクトリ内のほかのものは公開でhttpでアクセスさせるが、himitsu.cgiだけはパスワードアクセスにしてあるので、暗号化したい場合などに使用。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog "logs/rewrite.log"
RewriteLogLevel 0
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/hogehoge/(.*)?$ https://%{HTTP_HOST}/hogehoge/$1 [L,R]
RewriteRule ^/~oyaji/himitsu/himitsu.cgi(.*)?$ https://%{HTTP_HOST}/~oyaji/himitsu/himitsu.cgi [L,R]
</IfModule>
miyokomikiです。重ねてのご指導ありがとうございました。実は、あれから他HPを検索・探索?してました。
> おやじがやっている、同様のテクニックです。パスワード入力したりするページやディレクトリにアクセスしたと>きに、httpでアクセスしたら自動でhttpsにrewriteして暗号化する方法です。
正にこれです!!!最初に計画したことが実現しそうです。うーん、感動(ちょっとオーバーですか?)ネットバンキングみたい。今印字してそれを参考に逐一設定しようと思います。またご報告いたします。
それにしても、おやじ様はどうしてこのような技術をご存知なのでしょうか?ちょっとラベル(レベル)が違います。それでは失礼致します。
お世話になっております。
よくわからないので、以下(すみません、コピーしました)をhttpd.congの最後に入れました。
------------------------------------------------------------
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog "logs/rewrite.log"
RewriteLogLevel 0
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/htdocs/(.*)?$ https://%{HTTP_HOST}/htdocs/$1 [L,R]
○RewriteRule ^/(.*)?$ https://%{HTTP_HOST}/$1 [L,R]
RewriteRule ^/~oyaji/himitsu/himitsu.cgi(.*)?$ https://%{HTTP_HOST}/~oyaji/himitsu/himitsu.cgi [L,R]
</IfModule>
------------------------------------------------------------------------------------
○印の行は、ドキュメントルートが「htdocs(Xoopsをここに入れている)」なので「/」のみとしました。「/htdocs/」とすると全く警告文も出ませんでしたので「/」にしてみました。(どのように記載すべきなのかわかりませんでした)。
実験:とりあえず、自宅LAN内で他のクライアントからアクセス((hostsで名前解決済み)すると、「セキュリティの警告」窓が表示され、OKボタンを押すと、何度もその窓が出てきて結局、先に進みません。よろしければ、ヒントいただければと思います。
すぐに動くはずなので、説明が不足しているかなとは、思ったのですが・・・。
> よくわからないので、以下(すみません、コピーしました)をhttpd.congの最後に入れました。
> ------------------------------------------------------------
> <IfModule mod_rewrite.c>
> RewriteEngine On
> RewriteLog "logs/rewrite.log"
> RewriteLogLevel 0
>
> RewriteCond %{SERVER_PORT} !^443$
> RewriteRule ^/htdocs/(.*)?$ https://%{HTTP_HOST}/htdocs/$1 [L,R]
ここで書くドキュメントの表示は、あくまでブラウザに入力する形態でのものなので、これはありませんよね。
> ○RewriteRule ^/(.*)?$ https://%{HTTP_HOST}/$1 [L,R]
これは、正しいです。よくできました。これで、サイトへのアクセスは全てhttpsになりますので、他の設定は冗長になるので、一切いりません。ただ、openなサイトならこれは止めるべきでしょうね。サイト証明書をVeriSign当たりでとらないと、アクセスしてきた人は必ず証明書の警告を見ることになりますし、仮にそこからインストール操作しても、IEは一見できたように見えても入りませんので、毎回警告が出るので煩わしくなり、ユーザが遠のくことにもなりかねません。
> RewriteRule ^/~oyaji/himitsu/himitsu.cgi(.*)?$ https://%{HTTP_HOST}/~oyaji/himitsu/himitsu.cgi [L,R]
これは、全く意味がありませんからやめましょう。
で、まとめると、余計なものがあるからだめなので、以下のようにすれば、全てhttpsアクセスに切り替わります。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteLog logs/rewrite.log
RewriteLogLevel 0
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*)?$ https://%{HTTP_HOST}/$1 [L,R]
</IfModule>
おやじ様、大変ありがとうございました。何度やってもおかしな表示になりついにこの時間になりました。
原因は、どうやら、コンテンツマネジメントシステムのXoopsにあるようです(あくまで私見です)。
念のため、ホームページビルダー6で簡単なHPを作成し実験したら、見事右下のアイコンが「128」を表示しました。ということは、Xoopsに何か原因があるのではないかとおもい、そちらの掲示板に質問をしています。
色々とご指導いただきありがとうございました。
リアクションが無いので動いたのかなと、XOOPSの掲示板を見ましたが、もう諦めたのですか?
試しに、下記条件で動かしてみましたが、細かいところはチェックしてませんが、何も問題なくrewriteされてsslで動きましたよ。
404エラーなので、ssl.confのDocumentRootがhttpd.confと同じになっていないだけのような気がしますが。
・xoops-2.0.5.1
・mysql-3.23.58
おやじ様、miyokomikiです。何度も申し訳ありません。
>ssl.confのDocumentRootがhttpd.confと同じになっていないだけのような気がしますが。
あちらをご覧頂いたならご承知と思いますが、全て削除・入れなおしました。しかし、だめです。
両方間違いなく、「c:\apache2\htdocs」です。xoops2関係ファイルも全てここに入っています。xoopsのmaifile.phpの該当個所もドキュメントルートと同じにしてます。
試しに、通常のhtmlファイルを作り実験したところ何の苦労もなく暗号化(右下のアイコンが緑に点灯)されます。
そこで、xoopsの掲示板に相談しました。ご指導の通りやってもうまく行きません。
今度、URLを書きますので、アクセスして頂いてどんなものかご覧いただければ幸いです。その旨,連絡いたします。現在、またxoopsを消去してますので(あー、もうがっかりです涙)
環境:Win2000SP4 Apache2.0.47 OpenSSl0.9.7c PHP4.3.3 MySQL4.0.15 Xoops2.0.5.1
疲れてます。URLこの間出してましたね。
404エラーはサーバーPCを落としていたからかもしれません。つまんないHPですが(というか実験用です)。
表示の暗号化した今はリンクしていません。
xoopsの実験のときはこのトップページはやめて、xoopsを表示させます。
お時間を頂きたく存じます。よろしくお願い致します。
おやじ様、miyokomikiです。お世話になっております。
Xoopsを全て再インストール(ファイルも全部DLLし直しました)しました。
なお、ドキュメントルート下のsecretディレクトリを作り、通常のhtmlファイルで呼び込むと(ご指導いただいたconfの記述要領で)暗号化はされますので、OpenSSLは動作しています。
現在は、その記述をコメントにしています。但し、モジュールは有効にしています。
SSLでログインするとなんか変な動作をします。お時間あればご覧ください。guestで入れます(中味は全くたいしたものではありません)
それでは失礼いたします。
> おやじ様、miyokomikiです。お世話になっております。
> Xoopsを全て再インストール(ファイルも全部DLLし直しました)しました。
> なお、ドキュメントルート下のsecretディレクトリを作り、通常のhtmlファイルで呼び込むと(ご指導いただいたconfの記述要領で)暗号化はされますので、OpenSSLは動作しています。
> 現在は、その記述をコメントにしています。但し、モジュールは有効にしています。
> SSLでログインするとなんか変な動作をします。お時間あればご覧ください。guestで入れます(中味は全くたいしたものではありません)
問題なく動作していますね。変とは、httpsでアクセスしてもhttpに戻ってしまうということでしょうか?
これは、rewriteを有効にすれば直ります。これは、Xoopsがmainfile.phpからXOOPS Virtual Path (URL)を持ってきてしまうからだと思います。毎回、牽いてくるので毎回rewrite動作が入るので、レスポンスが悪く感じるかもしれませんね。相対で動いてくれれば、一度rewriteすればOKなのですが。
お手数おかけしております。
先ほど、近くのショップで自分のHPを見てみました(お店屋さん、すみません)
。
トップページのログインの下にある「SSL」をクリックしますと、別の窓が開き「ユーザ名・パスワード」を聞いてきますので入力し、ログインボタンを押すと「下記ボタンをクリックしてログインしてください。」という画面が出てそこのログインボタンを押します。すると「セキュリティ情報」の警告が出ます。「はい」を押すと真っ白け(何故か「閉じる」のボタンあり)の画面に移ります。試しに「閉じる」を押すと最初のログイン画面に戻ります。(実は「なんか変な動作をする」というのはこのことを言ってました。)
なお、ログイン処理の『guestさん、ようこそ。ログイン処理中です。』
ログアウト処理の『ログアウトしました。当サイトをご利用いただきありがとうございました』
と表示される画面はどうしてか、鍵マークがつきます?
なお、ご指導の通り、httpd.confは以下のようにしています。
(既述のようにXoops関連ファイルは全てc:/apache2/htdocsにあります。)
********** httpd.confの最後の行に付加 ******************
#暗号化の設定
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteLog logs/rewrite.log
RewriteLogLevel 0
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*)?$ https://%{HTTP_HOST}/$1 [L,R]
</IfModule>
*******************************************************
>これは、rewriteを有効にすれば直ります。これは、Xoopsがmainfile.phpからXOOPS Virtual Path (URL)を持っ>てきてしまうからだと思います。
この意味は、上記の様に設定しなさい、という意味と理解しましたが?いかかでしょうか?
> お手数おかけしております。
> 先ほど、近くのショップで自分のHPを見てみました(お店屋さん、すみません)
おやじのWWWサーバテストで試験できるはずなので、いちいち行く必要はないでしょう。
> トップページのログインの下にある「SSL」をクリックしますと、別の窓が開き「ユーザ名・パスワード」を聞いてきますので入力し、ログインボタンを押すと「下記ボタンをクリックしてログインしてください。」という画面が出てそこのログインボタンを押します。すると「セキュリティ情報」の警告が出ます。「はい」を押すと真っ白け(何故か「閉じる」のボタンあり)の画面に移ります。試しに「閉じる」を押すと最初のログイン画面に戻ります。(実は「なんか変な動作をする」というのはこのことを言ってました。)
そもそも、Xoppsのトップページにアクセスした時点からSSLにrewriteするのでので、Xoopsのssl機能(ログインだけ)はいらないので、xoopsの設定をもどし画面にsslが出ないようにすればいいのでは?
> なお、ご指導の通り、httpd.confは以下のようにしています。
> (既述のようにXoops関連ファイルは全てc:/apache2/htdocsにあります。)
>
> ********** httpd.confの最後の行に付加 ******************
>
> #暗号化の設定
> <IfModule mod_rewrite.c>
> RewriteEngine on
> RewriteLog logs/rewrite.log
> RewriteLogLevel 0
> RewriteCond %{SERVER_PORT} !^443$
> RewriteRule ^/(.*)?$ https://%{HTTP_HOST}/$1 [L,R]
> </IfModule>
>
> *******************************************************
> >これは、rewriteを有効にすれば直ります。これは、Xoopsがmainfile.phpからXOOPS Virtual Path (URL)を持っ>てきてしまうからだと思います。
> この意味は、上記の様に設定しなさい、という意味と理解しましたが?いかかでしょうか?
そうです。
できるようになりました。いろいろご指導ありがとう御座いました。
Xoopsを利用してSSL暗号化を実行している「自宅鯖計画」の掲示板にも質問したところ、管理人様からxoopsのmainfail.phpの内容の修正をしなさい、との助言があり、修正したところすぐにできました。
この掲示板で色々と勉強させていただきました。大変感謝しております。少なくともOpenSSLについて理解が深まりました。ありがとう御座いました。
貴HPの益々のご発展を祈念いたします。
こんばんは。
よかったですね。
> できるようになりました。いろいろご指導ありがとう御座いました。
> Xoopsを利用してSSL暗号化を実行している「自宅鯖計画」の掲示板にも質問したところ、管理人様からxoopsのmainfail.phpの内容の修正をしなさい、との助言があり、修正したところすぐにできました。
「自宅鯖計画」さんは、このBBSに始めてカキコしてくださった方です。しばらくぶりに訪問してみました。
No.2093にも書きましたが、常にssl(トップページアクセスでrewrite)ならやまださんが書いてくださったように、
define('XOOPS_URL', 'https://jsdf.org');
でOKです。ユーザがhttpsでアクセスしたときだけ以降もhttpsにするなら、rewriteはやめ、やまださんが次に書いてくれた443でのアクセスかどうかで'XOOPS_URL'を変える方法がいいでしょう。
ご返信ありがとう御座いました。
おやじ様、自宅鯖計画管理人様とものすごい方です。「初心者」とか書いてありますが、大御所的存在です。
改めてインターネットのすごさを知りました。
それでは、これで本スレッドは終了いたします。
いつも拝見させてもらいますが(はい)。