SSLでWWWサーバを構築するのにDDNSではできないのでしょうか?
(固定IPを取得する必要がある?)
過去ログを見ていますと
>> 名前ベースのバーチャルホストでSSLを通そうと思っています。
>> 調べたところ、IPベースならうまくいっても名前ベースだとSSLは
>> できないと分かりました。
> そのとおりです。仕組みまで理解されていれば、名前ベースバー
>チャルホストではどうあがいても以下のとおりの結果しか得られな
>いことは容易にわかると思います。
のような事が書かれてありました。
変な質問かもしれませんが、初心者故ご容赦ください。また勘違い
があればご指摘頂ければ幸いです。
よろしくお願いします。
> SSLでWWWサーバを構築するのにDDNSではできないのでしょうか?
> (固定IPを取得する必要がある?)
> > 過去ログを見ていますと
> >> 名前ベースのバーチャルホストでSSLを通そうと思っています。
> >> 調べたところ、IPベースならうまくいっても名前ベースだとSSLは
> >> できないと分かりました。
> > そのとおりです。仕組みまで理解されていれば、名前ベースバー
> >チャルホストではどうあがいても以下のとおりの結果しか得られな
> >いことは容易にわかると思います。
> のような事が書かれてありました。
> > 変な質問かもしれませんが、初心者故ご容赦ください。また勘違い
> があればご指摘頂ければ幸いです。
> よろしくお願いします。
DDNSでも問題なくできますよ
過去ログの件は、Virtual Hostで動作させるときに
DNSが外部にある状態ですとIPベースでできず、名前ベースしか
できない。そして名前ベースですと個々に別々の証明書を読み込んでくれないため、SSL自体はできても警告が出るのです。
(まぁWebアドレスと証明書のアドレスが違うという警告以前に自己証明書ですと警告でますけどね・・。)
> DDNSでも問題なくできますよ
> 過去ログの件は、Virtual Hostで動作させるときに
> DNSが外部にある状態ですとIPベースでできず、名前ベースしか
> できない。そして名前ベースですと個々に別々の証明書を読み込んでくれないため、SSL自体はできても警告が出るのです。
> (まぁWebアドレスと証明書のアドレスが違うという警告以前に自己証明書ですと警告でますけどね・・。)
くまさん、おやじさん返信ありがとうございます。できると聞いてやる気がでました。実はおやじさんのサイトを参考にすでに試みているのですがwebサーバーは構築できているのですが、SSLではうまくいきません。うまくいかない現象とやってみたことを下記しますのでアドバイス等頂ければ幸いです。(Virtual Hostがよく理解できていないと自分では思っているのですが、何をどう調べていけば原因にたどりつけるのか、途方に暮れていました)
<現象>
http://では表示できるが、同じサイトをhttps://では表示できない。
アドレスを入力した時点では、ブラウザに「セキュリティで保護された接続でページを表示しようとしています」のメッセージが出る。
その後サーバーが見つからないか、DNS エラーです。」と表示される。
<やってみたこと>
・netstatでポート443はLISTEN状態になっている
・ルータのポートマッピングは行ったつもり。
(Sygate Online Services のチェックでは443はopenになっている)
・証明書関係の作業はおこなったつもり(エラー内容からして
それ以前の問題でしょうか?)
・Virtual Hostの設定は、httpd.confとssl.confのどちらにも記述したつもりです(多分この設定がおかしい?IPベースか名前ベースかというのはどこで設定するのでしょう?)
> > DDNSでも問題なくできますよ
> > 過去ログの件は、Virtual Hostで動作させるときに
> > DNSが外部にある状態ですとIPベースでできず、名前ベースしか
> > できない。そして名前ベースですと個々に別々の証明書を読み込んでくれないため、SSL自体はできても警告が出るのです。
> > (まぁWebアドレスと証明書のアドレスが違うという警告以前に自己証明書ですと警告でますけどね・・。)
> くまさん、おやじさん返信ありがとうございます。できると聞いてやる気がでました。実はおやじさんのサイトを参考にすでに試みているのですがwebサーバーは構築できているのですが、SSLではうまくいきません。うまくいかない現象とやってみたことを下記しますのでアドバイス等頂ければ幸いです。(Virtual Hostがよく理解できていないと自分では思っているのですが、何をどう調べていけば原因にたどりつけるのか、途方に暮れていました)
>
> <現象>
> http://では表示できるが、同じサイトをhttps://では表示できない。
> アドレスを入力した時点では、ブラウザに「セキュリティで保護された接続でページを表示しようとしています」のメッセージが出る。
> その後サーバーが見つからないか、DNS エラーです。」と表示される。
これはIEでテストしてる結果ですよね。 この現象は、クライアントに自分で作成したCA証明書を入れたが、サーバ証明書を自己認証した時に使用したCA証明書とクライアントに入れたCA証明書がミスマッチ場合に起こる現象と思います。
クライアントにCA証明書を入れたなら削除して、ブラウザを新規に開いてアクセスしてみてください。警告が出るが、続行すれば見えませんか?
IEはこういうときに安易な対処をしているので、NetscapeやFirefoxあたりをテスト用に入れておくといいですよ。ブラウザで挙動が違いますし、どちらかといえば、NetscapeやFirefoxはベタでエラーを見せてくれるので、状況がつかみやすいです。
> <やってみたこと>
> ・netstatでポート443はLISTEN状態になっている
> ・ルータのポートマッピングは行ったつもり。
> (Sygate Online Services のチェックでは443はopenになっている)
> ・証明書関係の作業はおこなったつもり(エラー内容からして
> それ以前の問題でしょうか?)
> ・Virtual Hostの設定は、httpd.confとssl.confのどちらにも記述したつもりです(多分この設定がおかしい?IPベースか名前ベースかというのはどこで設定するのでしょう?)
ssl化するときにVirtual Hostでやるので、ssl化と所謂バーチャルホストという機能が混乱しているように思います。単純に、
http://www.aconus.com/~oyaji/
https://www.aconus.com/~oyaji/
とアクセスするだけなら、httpsにバーチャルホストの設定は不要です。下記、および文中のリンク先をよく見ればわかります。
http://www.aconus.com/~oyaji/www/apache_win_virtual.htm
所謂バーチャルホストというのは、
http://www.aconus.com/
http://www.hogehoge.com/
というアクセス形態で一台のサーバで同じ、もしくは異なるサイトを同時に動かすための技術です。
その時に、www.aconus.com=11.22.33.44, www.hogehoge.com=22.33.44.55というようにアドレスが違う場合が、IPベースのバーチャルホストで、www.aconus.com= www.hogehoge.com=11.22.33.44 と同じアドレスなのが名前ベースのバーチャルホストです。従って、Ipベースの場合は、おやじのように2回線契約したり、IP8でグローバルアドレスが複数必要になります。名前ベースならIPは一個でOKです。但し前述のように、名前ベースではIPは一個しかないのでSSLセッションを張るときは、どちらのサーバアクセスかわからないので、ssl.confの先頭に書いたバーチャルサーバの証明書が使用されるので、2番目以降は何をやってもエラーがでます。
> とアクセスするだけなら、httpsにバーチャルホストの設定は不要です。下記、および文中のリンク先をよく見ればわかります。
>
> http://www.aconus.com/~oyaji/www/apache_win_virtual.htm
>
ご指摘のとおり、ssl化virtualhostとが混乱しておりhttpd.confに
#nameVirtualHost *:80
<VirtualHost 192.168.0.:80>
ServerName www.hoge.jp:443
</VirtualHost>
などわけのわからない記述になっていたのが直接の原因でした。
(しかも大事なところがコメントになっていた。情けない・・・)
まだvirtualhostが十分に理解できているわけではありませんがhttpd.confには80、ssl.confには443の設定をそれぞれ記述することでhttpsでも表示できるようになりました。
ご丁寧なご指摘・ご説明ありがとうございました。
今後ともよろしくお願いします。
> SSLでWWWサーバを構築するのにDDNSではできないのでしょうか?
> (固定IPを取得する必要がある?)
>
> 過去ログを見ていますと
> >> 名前ベースのバーチャルホストでSSLを通そうと思っています。
> >> 調べたところ、IPベースならうまくいっても名前ベースだとSSLは
> >> できないと分かりました。
> > そのとおりです。仕組みまで理解されていれば、名前ベースバー
> >チャルホストではどうあがいても以下のとおりの結果しか得られな
> >いことは容易にわかると思います。
> のような事が書かれてありました。
>
> 変な質問かもしれませんが、初心者故ご容赦ください。また勘違い
> があればご指摘頂ければ幸いです。
> よろしくお願いします。
ご質問の「httpsは固定IPでないとできないのか?」は、そんなことは全くないというのが答えです。おやじのサイトがまさにそうですから。固定IPか動的IPかはDNS関係で気になるぐらいで、DNSが牽けてしまえばそれ以降の動作には差はないと思っていても大勢に影響はないです。
バーチャルホストとは何かがわかっていれば、過去ログ件はDDNS(IPアドレスの話ではない)とは全く関係ないことはわかると思います。
IPベースというのは、ホスト毎に異なるIPアドレス(インターネットに公開しているのであれば、グローバルアドレスがホストの数だけ必要。ルータを介しているならそれぞれに対応したプライベトアドレスも同数必要。)を付与して、アドレス対応にバーチャルホストを動かす方法であり、アドレスが特定できるのでセッションを設定する前にどのホストにアクセスしてきたかが識別できるのでSSL化ができます。
それに対して、名前ベースはアドレスが一つしかないので、セッションを設定する前にはどのホストにアクセスしてきたかがわからない(セッションが張れた後にhttp://ホスト名/ がわかる。)ので、先頭のバーチャルサーバの証明書で認証するので二番目以降のホストは毎回ホスト名が違うというエラーがでてしまいます。IPベースなら自己認証用のCA証明書をクライアントに放り込んでおけば二度とエラーはでません。不特定多数向けに暗号化とサイト証明を狙っているなら自己署名ではまずいので、チャントした証明書を取得するべきでしょう。単なる暗号化が目的なら、自分あるいは自分に近い人間だけでしょうから、自己認証用のCA証明書をクライアントに放り込んでおけばいいと思います。