G'Day、
SNI を使用して、クラウド ベースの単一 IP ソリューションで SSL Web サイトをホストすることを検討しています。クライアントが TLS ハンドシェイクの前に HTTP 経由で SNI 対応かどうかを .net で判断できますか?
「 TLSハンドシェイクの前」が何を意味するのかは明確ではありません。
サーバー名拡張子は、ハンドシェイクを開始するためにクライアントから送信される最初の TLS メッセージである Client Hello メッセージにあります。HTTPS も常に最初に TLS 接続を確立することから始まるため、それ以前に何も起こりません。ハンドシェイクの前にクライアントが SNI に対応しているかどうかを知ることは、まったく不可能です。
JavaScript を使用して SNI サポートの検出を試みることで、クライアント側で何かを整理できる場合があります。
これは、一般的な問題を解決する可能性は低いと言われています.SNIがサポートされていないときにフォールバック/ワイルドカード証明書を使用している場合、他の特定の証明書を使用してもほとんど意味がありません(widlcard証明書は推奨されません); SNI を想定している場合は、それをサポートしていないクライアントをブロックします。