SNIの概要
IPv4アドレスは乏しい。 したがって、仮想ホスティングがHTTPサーバーに導入され、複数のドメイン名が同じIPアドレスを使用できるようになります。 サーバは、要求内の異なるホストフィールドに基づいて、異なるドメイン名 (仮想ホスト) に要求を転送する。
HTTPSサーバーのIPアドレスが複数のドメイン名で共有されている場合、サーバーは、ハンドシェイクが確立される前にクライアントが要求する特定のホストフィールドを認識しません。 その結果、HTTPサーバーは特定のドメイン名にリクエストを転送できません。 ハンドシェイクを完了するには、サーバーはドメイン名の証明書を取得する必要があります。
サーバー名表示 (SNI) は、この問題を解決するために設計されています。 SNIは、ハンドシェイクが確立される前に、クライアントがアクセスされるドメイン名のホストフィールドを保持することを要求する。 サーバーは、正しいドメイン名の証明書を使用して、クライアントとのハンドシェイクおよびTSL接続を確立できます。
SNIは2004年に最初に導入され、現在ではすべての主流のブラウザ、サーバー、およびテストツールでサポートされています。
Anti-DDoS ProまたはAnti-DDoS PremiumおよびWAFを使用する場合、クライアントがSNIをサポートする必要がある理由
Anti-DDoS Pro、Anti-DDoS Premium、またはWeb Application Firewall (WAF) インスタンスはプロキシとして機能し、実サーバー (RS) と対話してHTTPSサービスを処理します。 HTTPS保護を設定するときは、証明書と秘密鍵をアップロードする必要があります。 Anti-DDoS ProまたはAnti-DDoS PremiumインスタンスのIPアドレス数とWAFインスタンスのIPアドレス数に制限があるため、物理サーバーをドメイン名に割り当てることはできません。 したがって、Anti-DDoS Pro、Anti-DDoS Premium、およびWAFインスタンスには、複数のドメイン名で共有されるサーバーが含まれている必要があります。 この場合、クライアントはSNIをサポートして、Anti-DDoS Pro、Anti-DDoS Premium、またはWAFインスタンスと対話する必要があります。
対応策
サーバー
SNIをサポートするようにサーバーを設定します。
クライアント
- Google ChromeまたはMozilla Firefoxの最新バージョンを使用することをお勧めします。
- Anti-DDoS ProまたはAnti-DDoS Premiumでレイヤー7のWebサイト保護を設定しないでください。 代わりに、レイヤー4ポート転送を設定します。 説明 レイヤー4ポート転送設定では、HTTPフラッド攻撃を軽減できません。
- 支えられたデスクトップのブラウザ:
- Google Chrome 5以降
- Google Chrome 6以降
- Mozilla Firefox 2以降
- Windows VistaでのInternet Explorer 7以降、およびWindows Server 2008以降
- Konqueror 4.7以降
- オペラ8以降
- Windows Vista、Windows Server 2008以降、およびMac OS X 10.5.6以降のSafari 3.0以降
- サポートされているモバイルブラウザー:
- Android 3.0ハニカム以降
- iOS 4以降
- Windows Phone 7以降
- サポートされているサーバー:
- Apache 2.2.12以降
- Apache Traffic Server 3.2.0以降
- チェロキー
- HAProxy 1.5 and later
- IIS 8.0以降
- Lighttpd 1.4.24以降
- LiteSpeed 4.1以降
- NGINX 0.5.32以降
- Supported command line tools:
- cURL 7.18.1以降
- GNU Wget 1.14以降
- サポートされるライブラリ:
- GnuTLS
- JSSE (Oracle Java) 7以降、クライアント専用
- libcurl 7.18.1以降
- NSS 3.1.1 and later
- OpenSSL 0.9.8j以降
- OpenSSL 0.9.8f以降、フラグで設定されます
- Qt 4.8以降