名前ベースのバーチャルホストでSSLを使う(SNI:Server Name Indication)
【お知らせ】この記事は、http://blog.apar.jp/linux/378/ に引越いたしました。
TLS拡張(RFC4366)仕様の一つ Server Name Indication(SNI、サーバー ネーム インディケーション)によって名前ベースのバーチャルホストでもSSLが使えるようになりました。
以前ディレクターの方から、SSLを使っているサイトのバーチャルホストの設定依頼を受けて「SSL使ってるとバーチャルホストは使えないっすよ」とドヤ顔で答えてしまい、少し恥ずかしい思いをしました(^^;)
昔の上司の言葉「常にアンテナを張っておけ!」を思い出します。
○ SNIの仕組み
SSLを使っていると当然ですがHTTPヘッダは暗号化されているので、クライアントがどのホスト名を指定しているのか判断できないため、先頭のパーチャルホスト(図の場合は lamp-sv)が表示されてしまいます。

SNIではSSL/TLSのやりとりの中で、暗号化していないホスト名をサーバに伝えてくれるので、指定したバーチャルホストを表示することができます。

○ SNIを使える条件
・Apache 2.2.12以降
・OpenSSL 0.9.8j以降
・ブラウザがSNIに対応
ApacheとOpenSSLは最近のサーバなら対応することができますが、ブラウザの対応状況には注意が必要です。
・参考にさせて頂いたサイト
http://e-garakuta.net/techinfo/doku.php/linux/apache-sni
○ssl.conf の設定サンプル
SNIに未対応のブラウザ用に「SSLStrictSNIVHostCheck」デレクティブを off にするのがキモです。
・SSLStrictSNIVHostCheck Directive
http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslstrictsnivhostcheck
以上です。
07
« Zabbix 2.2 を yumでインストール(Linux CentOS6.4) | VirtualBox 仮想マシンのクローン手順メモ »
コメント
参考になりました!
Comment
list
コメントの投稿
Comment
form
トラックバック
トラックバックURL
→http://arpanet617.blog.fc2.com/tb.php/52-23668f98
この記事にトラックバックする(FC2ブログユーザー)
Trackback
list
| h o m e |