Apache 2.4からドキュメント:
SSL 名ベースの仮想ホストの最初の (デフォルトの) vhost には、許可されたプロトコルとして TLSv1 が含まれている必要があります。そうしないと、Apache はクライアントからの SNI 情報を受け入れず、クライアントが SNI をまったくサポートしていないかのようになってしまいます。
サーバー上に複数の TLS 対応サイトを用意し、それぞれに異なる証明書を発行したいと考えています。セキュリティ上の理由から、TLSv1.1 と TLSv1.2 のみを許可しています。SNI を安全に有効にする方法はありますか?
私の設定からの抜粋:
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /var/www/example.com
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 -TLSv1
[other SSL options]
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.org
Redirect permanent / https://www.example.org/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.org
DocumentRoot /var/www/example.org
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 -TLSv1
[other SSL options]
</VirtualHost>
答え1
ウィキでは、TLSv1 をそれより前のプロトコルと対比しており、それより後のプロトコルとは対比していません。SNI は TLSv1.1 および TLSv1.2 で正常に動作します。