最初からHTTPSを提供する場合は、クライアントが最初から受け入れた証明書を提供する必要があります。そうでない場合、クライアントはSSL接続を受け入れず、クライアントを別のサイトまたはHTTP専用バージョンにリダイレクトできません。これは、このケースをサポートすることを意味します
- いずれかのドメインにすべて単一の証明書が含まれている必要があるため、非SNIクライアントに適切な証明書を提供できます。ただし、この場合、SNIはまったく必要ありません。
- または、ほとんどの名前と一致しないデフォルトの証明書をインストールする必要があります。この場合、クライアントがこの不正な証明書を受け入れる場合にのみ、クライアントに別のページを提供するか、ページをリダイレクトすることができます。
最初からHTTPSを使用する必要がない場合、つまりクライアントが通常はプレーンHTTPで最初に接続する場合は、SNIサポートを検出して、後でクライアントをリダイレクトできるようにすることができます。これは、HTTPSサイトから画像、JavaScript、または類似のものを含めることによって行われる場合があり、ロードが成功した場合、クライアントがSNIをサポートしているか、証明書エラーを無視していることがわかります。
もちろん、これはすべてを中間者攻撃に対してオープンなままにします。中間者が行う必要があるのは、いくつかの異なる証明書を提供するか、HTTPSをまったく使用不可にすることです。この場合、接続をHTTPSにアップグレードします。さらに、中間者が代わりにSNIを使用する場合、これを使用して、クライアントがSNIをサポートしているように見せることができます。また、SNI以外のクライアントが影響を受けるだけでなく、SNI対応のクライアントのみ傍受できます。したがって、これは理論的には可能ですが、すべてを中間者で仲介し、HTTPSを使用することの主要なポイントを作成できるため、お勧めできません。