メッセージ

2011年06月13日の記事

2011/06/13(月)ネーム(名前)ベース SSL バーチャルホストは今や可能

2017/10/12 4:25 サーバ運営・管理
これは、広くSNI(Server Name Indication / RFC4366) として知られつつある技術。

今まで、SSLのバーチャルホスティングは、サイト毎に異なるIPアドレスが必要で、昨今のIPアドレス枯渇を受けて、不要不急の立ち上げを規制しているなどの面もあって積極的には対応していませんでした。

エンドユーザに対しては、「サイト毎にIPアドレスが必要 → 提供費用の上乗せ」ということにならざるを得ずという状況でした。

ですが、現在では「SNI対応ブラウザ」さえあれば、「ネーム(名前)ベース SSL バーチャルホスト」が出来ますので、同じ品質で今までより安価にSSLサイトを運用・構築できる道が拓かれています。
月額換算で最低4000円程度から対応できます。

SNI対応ブラウザは、2011/06/13 現在以下の通りです。
一部ゲーム機に以下のブラウザが搭載されていますが、ゲーム機では基本的にSNI対応はされていません。
お使いのものが WindowsXP であれば、Internet Explorer を捨てる選択をお勧め。
但し、Internet Explorer からの乗り換え誘導のほうが、経済的負担より重いかもしれません。

・Opera 8 以降全て (TLS 1.1 を手動で有効・確認する必要がある)
・Firefox 2 以降全て
・Chrome 6 以降全て
・Safari 3.2.1 以降
(Safari については、MacOS X,Windows 7 以降で対応。その他は不可)
・Lynx 2.8.7rel1 以降
・Internet Explorer 7,8,9
(Internet Explorer については、Windows vista 以降で対応。Windows XP は不可)

また、サーバでもSNIに対応していることが必要です。
以下の要件を満たしていれば、たいていの場合、自動的に導入されています。

・Apache 2.2.12 以降のバージョンで、OpenSSLライブラリ付きで構築している
・OpenSSL 0.9.8k 以降
(OpenSSLがTLS拡張オプション〔enable-tlsext〕ありで構築している)
(OpenSSL 0.9.8f 以降であれば、TLS拡張オプションありで再構築すれば対応できる)

FreeBSD の場合、OpenSSL がOSにバンドルされていますが、8.1R が OpenSSL 0.9.8n, 8.2R が OpenSSL 0.9.8q で、8.1R からデフォルトでTLS拡張オプション対応です。

2011/06/13(月)〔参考〕Apache 2.2 のSNI ホスティング設定

2017/10/12 4:26 サーバ運営・管理
SSLStrictSNIVHostCheck off というのは、SNI 非対応ブラウザのとき、複数あるバーチャルホストコンテナの最初のコンテナへアクセスさせるような設定です。
Apache 2.2.12 以降で使用できます。
あとは、通常のノンセキュア名前ベースバーチャルホストと大きく変わりません。

--- ここから
Listen 443
NameVirtualHost aaa.bbb.ccc.ddd:443
SSLStrictSNIVHostCheck off

<VirtualHost aaa.bbb.ccc.ddd:443>
  DocumentRoot "/home/webroot/site1/ssdocs"
  ServerName www.example.com
  SSLEngine on
  SSLCertificateFile "/usr/local/etc/apache/certs/www.example.com.pem"
  SSLCertificateKeyFile "/usr/local/etc/apache/certs/www.example.com.key"

  (以下、その他の設定)
</VirtualHost>

<VirtualHost aaa.bbb.ccc.ddd:443>
  DocumentRoot "/home/webroot/site2/ssdocs"
  ServerName www.example.net
  SSLEngine on
  SSLCertificateFile "/usr/local/etc/apache/certs/www.example.net.pem"
  SSLCertificateKeyFile "/usr/local/etc/apache/certs/www.example.net.key"

  (以下、その他の設定)
</VirtualHost>