いつもお世話になっております。
ここのページを参考にして、
WindowsXP SP2
Apache_2.0.55-Openssl_0.9.8a(Hunterにあったもの)
Openssl0.9.8a
でSSL対応のウェブサーバーを構築したところ、
FireFoxでは、正常に表示されるのですが、
IEでは、ページが表示されない異常になってしまいます。
切り分けのため、サーバー証明のみにするために、
#SSLVerifyClient require
#SSLVerifyDepth 1
はコメントアウトしてあります。
検証に使っているページは、Apacheのデフォルトページで行っています。
まだ、クライアントにCAは入れていません。
FireFoxでは、サーバー証明書が自己認証である確認画面と、
サーバー認証のアドレスが違うというセキュリティメッセージ画面が表示され、
その後にデフォルト画面が表示されます。
IEでは、サーバー証明書が自己認証である確認画面が2回出て、
その後サーバーが見つからないかDNSエラーとなります。
https://localhost:443やhttps://(IP Adress):443
でアクセスしているため、DNSなども考えにくいです。
IEでも、SSLを使わない接続(httpで80番)では表示されます。
しかも、困ったことにデフォルトの状態のログでは、
ログにすらエラーなどが出力されません。
こんな状態を解決された方おられましたらご教授のほどよろしくお願いします。
> ここのページを参考にして、
> WindowsXP SP2
> Apache_2.0.55-Openssl_0.9.8a(Hunterにあったもの)
> Openssl0.9.8a
> でSSL対応のウェブサーバーを構築したところ、
> FireFoxでは、正常に表示されるのですが、
> IEでは、ページが表示されない異常になってしまいます。
>
> 切り分けのため、サーバー証明のみにするために、
> #SSLVerifyClient require
> #SSLVerifyDepth 1
> はコメントアウトしてあります。
よく勘違いされる方がいるので老婆心ながら・・・。説明はよく読まれていますよね。上記はクライアント認証が本当に必要で、入れるつもりだが今はコメントアウトしてあるということならいいのですが、普通個人では絶対に必要がないと思いますが?
> 検証に使っているページは、Apacheのデフォルトページで行っています。
> まだ、クライアントにCAは入れていません。
>
> FireFoxでは、サーバー証明書が自己認証である確認画面と、
> サーバー認証のアドレスが違うというセキュリティメッセージ画面が表示され、
> その後にデフォルト画面が表示されます。
>
> IEでは、サーバー証明書が自己認証である確認画面が2回出て、
> その後サーバーが見つからないかDNSエラーとなります。
普通に設定してきただけで、下記のようにデフォルトのドキュメントルートにアクセスしているだけなら、一回出て受け入れたらそのまま表示され2回出ることはありません。両方とも同じ表示というならなおさらおかしいですが、こういう現象は経験がないので何か設定がおかしいのだろう?とは思うのですが・・。
ところで、証明書の作成は0.9.8aでやられたのなら、このままおやじの手順で進めても、最後にCA証明書作成をIEにインポートした時点で駄目になってしまいます。証明書作成の事前準備のところを読まれましたか? 0.9.8aでもCA.plを使って証明書を作成すると、LNが入らず結果として使えません。この現象は、最初にCA証明書を作成したときにズラズラ出てくるメッセージをよく見ればわかります。または、下記でも確認できます。
# openssl x509 -in 証明書名(cacert.pem) -text
0.9.7xで作成するか? おやじの0.9.8で作成するか? 他のサイトを参考にCA.plを使わない(正確には、'openssl ca')方法で作成するしかないです。
http://www.aconus.com/~oyaji/www/certs_win.htm
>
> https://localhost:443やhttps://(IP Adress):443
> でアクセスしているため、DNSなども考えにくいです。
> IEでも、SSLを使わない接続(httpで80番)では表示されます。
>
> しかも、困ったことにデフォルトの状態のログでは、
> ログにすらエラーなどが出力されません。
ブラウザ側でエラーになっているからです。
この件ですが、結論から申し上げるとApache・OpenSSLを最初からやり直したことにより解決してしまいました。
今後の皆様のために処置した方法を記述しておきます。
前提:(以前のApache1.3位をアンインストールした後のPC)
初期状態:
Apache2をDドライブにインストールした。(システムドライブではない)
OpenSSL0.9.8aをDドライブにインストールした(システムドライブではない)
Apacheのインストール先とOpenSSLのインストール先にPathを通した。
この状態で動くと思っていたのですが、過去のカキコに書いたような現象になった。
処置内容:
1.ApacheとOpenSSLをアンインストール(レジストリもきれいにした。)
2.このページを参考にシステムドライブにApacheをインストール
3.このページを参考におやじさんとこのOpenSSL0.9.8をインストール
あとは、このページを参考に進めて行ったところ、症状が発生しなかった。
サーバー認証もクライアント認証も無事行うことができた。
障害の理由と思われる事柄:
・古いApacheのレジストリが残っていた。
・ApacheやOpenSSLをシステムドライブにインストールしていなかった。
・OpenSSL0.9.8aには別の問題が潜んでいるかもしれない。
> > 切り分けのため、サーバー証明のみにするために、
> > #SSLVerifyClient require
> > #SSLVerifyDepth 1
> > はコメントアウトしてあります。
> > よく勘違いされる方がいるので老婆心ながら・・・。説明はよく読まれていますよね。上記はクライアント認証が本当に必要で、入れるつもりだが今はコメントアウトしてあるということならいいのですが、普通個人では絶対に必要がないと思いますが?
クライアント証明は作成するサーバーの都合で外部から特定のユーザーを限定してアクセスさせる部分があるためです。ですから、この機能は必要なんです。
> 普通に設定してきただけで、下記のようにデフォルトのドキュメントルートにアクセスしているだけなら、
> 一回出て受け入れたらそのまま表示され2回出ることはありません。
> 両方とも同じ表示というならなおさらおかしいですが、こういう現象は経験がないので何か設定がおかしいのだろう?とは思うのですが・・。
というわけで、再インストールという釈然としない解決方法ですが、解決してしまいました。
ご協力ありがとうございました。