首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止其他Apache2.2多个VirtualHosts域使用SNI访问https (SSL_ERROR_BAD_CERT_DOMAIN)?

如何防止其他Apache2.2多个VirtualHosts域使用SNI访问https (SSL_ERROR_BAD_CERT_DOMAIN)?
EN

Server Fault用户
提问于 2016-07-15 16:06:18
回答 1查看 586关注 0票数 0

我正在Linode服务器上的Ubuntu14.04.4LTS上运行Apache2.2。我有多个域托管在这台机器上(只有一个IP地址)。

我有一个托管在这里的域tbw.com,为此我有一个SSL证书,并且希望将所有http://tbw.comhttp://www.tbw.com查询重定向到https://www.tbw.com (在当前的配置中正在发生这种情况)。

我还拥有rf.com和其他http://rf.comhttp://www.rf.com一样工作良好的站点。

但是,当我尝试访问https://www.rf.com时,会出现一个错误:

代码语言:javascript
复制
Your connection is not secure
...
www.rf.com uses an invalid security certificate. 

The certificate is only valid for the following names: www.tbw.com, tbw.com 
Error code: SSL_ERROR_BAD_CERT_DOMAIN
  1. 我不希望这种情况发生-我宁愿它显示非SSL域的标准/预期的“安全连接失败”错误。
  2. 是否可以在同一台计算机(相同的IP地址)上安装具有SSL证书的其他域?

我看过以下文章,但我认为答案是过时的,因为SNI (服务器名称指示)现在已经存在了。

同一个IP上具有SSL的多个域

如何防止https://可从没有证书的域访问?

我的配置文件:

/etc/apache2/apache2.conf

代码语言:javascript
复制
...
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
...

/etc/apache2/ports.conf

代码语言:javascript
复制
NameVirtualHost *:80
NameVirtualHost *:443

Listen 80
...

/etc/apache2/站点-现有/tbw.com.conf

代码语言:javascript
复制
<VirtualHost *:80>
   ServerName tbw.com
   ServerAlias www.tbw.com
   DocumentRoot /var/www/html/tbw.com/public_html
   Redirect permanent / https://www.tbw.com/
</VirtualHost>

<IfModule mod_ssl.c>
    <VirtualHost www.tbw.com:443>
        ServerAdmin yo@tbw.com
        ServerName www.tbw.com
        DocumentRoot /var/www/html/tbw.com/public_html

        # Log file locations
        LogLevel warn
        ErrorLog  /var/www/html/tbw.com/log/error.log
        CustomLog /var/www/html/tbw.com/log/access.log combined

        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/tbw.com/www_tbw_com.crt
        SSLCertificateKeyFile /etc/apache2/ssl/tbw.com/tbw.key
        SSLCertificateChainFile  /etc/apache2/ssl/tbw.com/www_tbw_com.ca-bundle
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                        SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                        SSLOptions +StdEnvVars
        </Directory>
        BrowserMatch "MSIE [2-6]" \
                        nokeepalive ssl-unclean-shutdown \
                        downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
    </VirtualHost>
</IfModule>
EN

回答 1

Server Fault用户

发布于 2016-07-15 16:55:31

我不希望这种情况发生-我宁愿它显示非SSL域的标准/预期的“安全连接失败”错误。

在这种情况下,您必须配置apache,使其不接受任何不支持SNI的客户端,即SSLStrictSNIVHostCheck on。在这种情况下,没有配置证书的虚拟主机应该会在客户端引发错误,例如,类似于无效的服务器名称或握手错误(取决于浏览器)。

是否可以在同一台计算机(相同的IP地址)上安装具有SSL证书的其他域?

只要客户端使用SNI (所有现代浏览器都这么做),这就应该是可能的。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/790072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档