はじめまして、はじめて参照させていただいたのですが、
すごく丁寧な解説でおかげさまでWindowsでの
Apache+SSL
サーバ構築に成功できたようです。
本当に助かりました、ありがとうございました。
ただ、自分はWEBアプリケーションのテスト環境構築のために、
Apache+SSLの環境が必要でWindows XP 上で構築して、
ブラウザをつないだら認証ダイアログが出てきて「うまくいった!」と喜んでいたのですが、
SSLVerifyClient
この値が、SSL認証の「カギ」を握るものという説明を、どっかしらから聞き及んで気にしていたのです。
このタグの値を「require」にしなければ、本当のSSL認証ではない!と・・・(この自分が聞いたうろ覚えな情報は、正しいのでしょうか?)
ssl.confにある上記タグのコメントをはずして再起動したところ、
ブラウザをhttpsにつないでみても認証画面がでてこないで、エラー画面となってしまいました。
IE5.5、IE6.0共に上記現象です。
netstat -an
で80と443のポートはlistenになっているのですが・・・
私を苦しめる、SSLVerifyClient って、いったいなんですか!?
requireにする必要性があるのですか!?
原因等、ご教授願えれば幸いです・・・
自分の都合ばかりの質問で大変恐縮ですが、ぜひぜひ、お教えください!
ちなみに、↓こちらのページを参照させていただいて、
http://www.aconus.com/~oyaji/www/apache_win_ssl.htm
認証カギは一つ目の方法を用いて作成しました。
> > SSLVerifyClient
> > この値が、SSL認証の「カギ」を握るものという説明を、どっかしらから聞き及んで気にしていたのです。
> このタグの値を「require」にしなければ、本当のSSL認証ではない!と・・・(この自分が聞いたうろ覚えな情報は、正しいのでしょうか?)
> > ssl.confにある上記タグのコメントをはずして再起動したところ、
> ブラウザをhttpsにつないでみても認証画面がでてこないで、エラー画面となってしまいました。
> IE5.5、IE6.0共に上記現象です。
> > netstat -an
> で80と443のポートはlistenになっているのですが・・・
> > 私を苦しめる、SSLVerifyClient って、いったいなんですか!?
> requireにする必要性があるのですか!?
証明書を使った認証でなければ必要有りません。
たとえばBasic認証ではそれを使いません。
参考:
http://mm.apache.or.jp/pipermail/apache-users/2004-March/003901.html
早速の回答、まことにありがとうございます!
なるほど、証明書ですか。
それです!
実はまさに証明書認証が必要なので、やはりrequire、証明書を手に入れる方向でやらなければならないようです。
ようやくわかってきました、ありがとうございます!!
先ほど、URLに「:443」を明示的に指定したところ、
認証モードにはいるらしきことがわかりました。
あとは証明書を発行・取得する方法を調べることになりそうです。
こちらのサイトで、
http://www.aconus.com/~oyaji/www/ssl_client.htm
ブラウザのSSL設定にて、CA証明書を発行・設定する方法がのっていましたが、
ca.crt ファイルがどこにあるのかわからずに手間取ってます・・・
> > あとは証明書を発行・取得する方法を調べることになりそうです。
> こちらのサイトで、
> http://www.aconus.com/~oyaji/www/ssl_client.htm
> ブラウザのSSL設定にて、CA証明書を発行・設定する方法がのっていましたが、
> ca.crt ファイルがどこにあるのかわからずに手間取ってます・・・
おやじさんの書いて有るとおりにやっているのでしょうか。
もしもその通りにやっていれば自己署名の証明書が出来るので、CAの証明書は無いです。
自分でCAの証明書を作ったのならopensslの設定によって変わります。
おやじさんの通りにやっております。
自己署名の証明書、server.crt,server.der,server.key,
になりますでしょうか?
そうしますと、各クライアントへ証明書を配布する、というのは、
server.der
をフロッピー等でもっていけばよいことになりますか?
もしかして見当違いなことを聞いていたら申し訳ありません・・・
自分が行いたい処理は、
・ApacheサーバでSSL認証
・クライアント側で証明書を得、
・その証明書の拇印を得る。
という処理なのです。
> おやじさんの通りにやっております。
> 自己署名の証明書、server.crt,server.der,server.key,
> になりますでしょうか?
> そうしますと、各クライアントへ証明書を配布する、というのは、
> server.der
> をフロッピー等でもっていけばよいことになりますか?
> もしかして見当違いなことを聞いていたら申し訳ありません・・・
> > 自分が行いたい処理は、
> ・ApacheサーバでSSL認証
> ・クライアント側で証明書を得、
> ・その証明書の拇印を得る。
> > という処理なのです。
SSL認証を行う場合はopensslでそれぞれのクライアントに署名した鍵を発行しなければなりません。
server.der(この場合はサーバ証明書です)をブラウザにインポートしても、認証は出来ず、証明局が登録されていないという警告が表示されなくなるだけです。
証明書の発行については、かなり複雑になります(汗
CAも用意しないといけないので
http://www.jajakarta.org/kvasir/bbs/technical/446?msg=3#msg1580
こちらの下の方にある「自己署名した認証局作成」の1,2,5,6,を参考にしてください。
:443をつければ認証される、と書いたのは嘘でした。
SSLVerifyClient=require
とすると、やはり認証されずに、IEがサーバエラーになってしまいます。
手詰まりになってしまいました。
プライベートキーの発行とかもしてみたのですが、IEは頑なにhttps://への接続を拒否し続けます。
申し訳ありませんが、なにか、何かアドバイスを・・・
といってる間に週末になってしまったので、
現場を離れざる得ません、レスが遅くなる矢も知れませんが、
大変お手数ですが、よかったらレス、くださいませ・・・
> :443をつければ認証される、と書いたのは嘘でした。
> SSLVerifyClient=require
> とすると、やはり認証されずに、IEがサーバエラーになってしまいます。
> 手詰まりになってしまいました。
> プライベートキーの発行とかもしてみたのですが、IEは頑なにhttps://への接続を拒否し続けます。
>
> 申し訳ありませんが、なにか、何かアドバイスを・・・
> といってる間に週末になってしまったので、
> 現場を離れざる得ません、レスが遅くなる矢も知れませんが、
> 大変お手数ですが、よかったらレス、くださいませ・・・
嗚呼さんが書かれているように、これはクライアント認証の話ですから、いままでのおやじのコンテンツの内容ではできません。
前から気になっていたテーマでWindows系の情報がほとんどないので、嗚呼さんの情報も参考にさせていただいて、Windows環境でもそのままで間違いなくできる方法を整理してみました。
http://www.aconus.com/~oyaji/www/certs_win.htm
嗚呼さん、おやじさん、親切丁寧にありがとうございます!!
現在サーバ環境から離れてて試して見れないのが非常に残念ですが、
後日やってみます!
本当にありがとうございました。
理解力に欠けるキライがあるのでまた質問させてもらっちゃうかもしれませんが、
なんとかがんばってみます!
ありがとうございました!
すべてうまくいきました。
パソコンおやじさんが、新しく立ち上げてくれましたページのおかげで、ぐぅの音もでないほどにうまくいきました。
本当に本当に長々ありがとうございました、嗚呼さん、おやじさん。
大感謝であります。
さしでがましいようですが、パソコンおやじさんのページを参照しながら、気がついた点を上げさせていただきます、重箱の隅をつつくようで申し訳ないですが、せめてもの役に立てば、と。(すいません、えらそうに)
---------------------
SSLによるSecureWWWサーバの構築(Windows編)
における、httpd.confの設定で、
ServerRoot
自分がDLしたApacheのhttpd.confにはこんなタグがあったのですが、この値の変更が記述されてませんでした。すぐに気がつくことではありますが、これが初期値と異なるディレクトリだと、Apache自体が起動しないので。
ちなみに自分がいれたモジュールは 2.0.51+OpenSSL です。
--------------------
また、「SSL用証明書の作成(Windows編)」にて(本当にこのページに助けられました!)
90行目に「CA用秘密鍵とサーバ用秘密鍵のパスフレーズは異なるものを使用すること。」
と注釈があったのですが、サーバ用秘密鍵作成時にパスフレーズを入力する機会がありませんでした。(空エンターを押した個所になるのでしょうか?)
少し疑問が残りました。
-------------------
長々余計なことまでつづりましてすいません。
本当に助かりました、またわからないことがあったら参照させていただきます、ありがとうございました。
> すべてうまくいきました。
> パソコンおやじさんが、新しく立ち上げてくれましたページのおかげで、ぐぅの音もでないほどにうまくいきました。
> 本当に本当に長々ありがとうございました、嗚呼さん、おやじさん。
> 大感謝であります。
お役に立ててよかったです。
> さしでがましいようですが、パソコンおやじさんのページを参照しながら、気がついた点を上げさせていただきます、重箱の隅をつつくようで申し訳ないですが、せめてもの役に立てば、と。(すいません、えらそうに)
下記のような話は、誤字脱字とは異なり結構重要な話と思っています。ご指摘、大変ありがとうございました。
> ---------------------
> SSLによるSecureWWWサーバの構築(Windows編)
> における、httpd.confの設定で、
>
> ServerRoot
>
> 自分がDLしたApacheのhttpd.confにはこんなタグがあったのですが、この値の変更が記述されてませんでした。すぐに気がつくことではありますが、これが初期値と異なるディレクトリだと、Apache自体が起動しないので。
> ちなみに自分がいれたモジュールは 2.0.51+OpenSSL です。
仰るとおりです。このコンテンツは以外とアクセスが多い割にはこういうご指摘が何故今までなかったんですかね。
おやじも結構いいかげんで、confを使いまわしたりしているので、コンテンツ作成時にスッポ抜けたようです。「すぐに気がつくことではありますが」とありますが、以外にそうでもないのです。こういうときは、Apacheのエラーログには何も出ず、windowsのイベントビューアを見ればいいというのを、ご存知ない方が多いんですよね。今回の件は、イベントビューアを見れば一発で分かることですが。
なお、証明書作成方法は新しいページを参照するようにします。
> --------------------
> また、「SSL用証明書の作成(Windows編)」にて(本当にこのページに助けられました!)
> 90行目に「CA用秘密鍵とサーバ用秘密鍵のパスフレーズは異なるものを使用すること。」
> と注釈があったのですが、サーバ用秘密鍵作成時にパスフレーズを入力する機会がありませんでした。(空エンターを押した個所になるのでしょうか?)
これは、情報提供を急ぐあまりにベースにしたコンテンツからの論理的な見直し不足です。
今までは、秘密鍵付きで作成してそのままではサーバの立ち上げときにパスワード入力を要求されるので、改めて削除するという無駄な作業をしていました。今回はそれをやめたので、この行は全く不要ですので削除します。
何だかんだと、ここ一週間はOpenSSLにはまってました。
はじめは、失効処理がうまく行ったり行かなかったりで、いろいろ調べた結果、配布されているバイナリではバグがあり、index.txtが壊れることが判明しました。
ではと、新しいバイナリはないかと探しまくったら、これが見つからず、自分でコンパルする羽目に。コンパイル環境でもはまりっぱなし。
いざ、終わったら、Netscapeにクライアント証明書をインストールしようとしても、蹴られっぱなし。
これも、証明書作成時の条件不足と判明して、やっと終わりました。
katoさんに、情報提供したことがきっかけで、結構、紆余曲折がありましたが、とてもいいお勉強になりました。
katoさん。前回の情報は捨ててください。