この状況で、複数のドメインを1IPしかりようできない環境で管理している場合、
ssl.confで仮に複数のバーチャルホストを設定したとしても、
デフォルト(最初に設定されたバーチャルホスト)が表示されるかと思います。
この場合に、HTTPS経由で異なるドメインでアクセスされた場合に
デフォルトのバーチャルホストを表示させない方法はありますでしょうか?
具体例でいうと、以下の二つのドメインあった場合・・・
① www.example.com
② www.example.net
※①のwww.example.comをhttpd.conf及びssl.confのいずれでもデフォルトとして設定
「https://www.example.net/」でアクセスされた場合、
「https://www.example.com/」を表示しないようにしたいということです。
ServerNameでしてもデフォルトが表示されてしまうことと、
mod_rewriteで転送をかけるにしても暗号化通信後となる為、
証明書のエラーが表示されてしまう為、
根本的に表示しないようにしたいです。
ServerNameでしてもデフォルトが表示されてしまうことと、
一応 NameVirtualHost aaa.bbb.ccc.ddd:443 とかしとけば、デフォルト以外も表示されます。
ただし、
mod_rewriteで転送をかけるにしても暗号化通信後となる為、
証明書のエラーが表示されてしまう為、
これと同じで、名前ベースの VirtualHost が選択されるのは暗号化通信後です。
という事で、「SSL の原理的に」同一 IP かつ証明書エラーなしで複数の SSL VirtualHost を立てることは不可能なのです。
こんな感じで設定すればいけないですかね?
NameVirtualHost xxx.xxx.xxx.100:443 <VirtualHost xxx.xxx.xxx.100:443> ServerName www.example.com:443 #ほかの設定 </VirtualHost> NameVirtualHost xxx.xxx.xxx.200:443 <VirtualHost xxx.xxx.xxx.200:443> ServerName www.example.net:443 </VirtualHost>
#なんかこのフォーム異常に入力しにくいのはなぜ??
ご回答ありがとうございます。
ご回答いただいている方法はIPベースのバーチャルホスト設定だと思います。
今回グローバルIPが一つしかなく名前ベースのバーチャルホストを利用している関係上
お教えいただいた方法は利用できません。
少し質問の趣旨を誤解されているようです。
私の質問は「1つのIPで複数のSSL::VirtualHostを利用したい」ということではなく、
逆に1つのIPで1つのサーバ証明書しか利用するつもりはないが、
httpd.confで複数のVirtualHostを利用している場合、
そのServerNameでHTTPS通信を行おうとすると、ssl.confで設定された異なるドメインが表示されてしまい
(例では「https://www.example.net」でアクセスした場合「https://www.example.com」が表示される)
そのため、ブラウザ上に不正な証明書を利用していると表示されてしまうので、
異なるドメインの場合httpsでアクセスされても表示しないようにしたいのですが、
その設定方法がわからないのでご存知の方がいればお教えいただきたいという質問です。