从 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
Wiki 将 TLSv1 与早期协议进行了对比,而不是与后期协议进行了对比。SNI 与 TLSv1.1 和 TLSv1.2 配合良好。