かつて SSL は名前ベースのバーチャルホストでは運用できないとされていたが、今はそのための規格やサーバ、対応クライアントの普及もあって、まあ使える。
もちろん対応していないクライアントもまだまだ残っていて、商用では「使えない」とされるのかもしれないけれど、それは置いておこう。
その規格は SSL/TLS の拡張仕様で SNI (Server Name Indication) と呼ぶらしい。 Apache 2.2 系などで使えて、"NameVirtualHost *:443" とすると有効になる。
あとは "<VirtualHost *:443>" ~ "</VirtualHost>" の間にディレクティブを記述すればよい。通常の名前ベースのバーチャルホストと同様だ。
ただ、HTTP でリクエストされたホスト名がバーチャルホスト定義のどこにもマッチしないときは、先頭のバーチャルホスト定義がデフォルトとして使われる、かと思ったがどうも違うようだ。
ホストがマッチしない時は元から入っている "<VirtualHost _default_:443>" の定義が使われているようであるし、DocumentRoot はグローバルに記述したところが有効になっているようだ。
:80 の場合と設定が有効になるルールが異なっているような気がするのだが、どうなんだろう。
0 件のコメント :
コメントを投稿