首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Apache config - https://显示相同服务器上其他域的默认SSL站点。

Apache config - https://显示相同服务器上其他域的默认SSL站点。
EN

Stack Overflow用户
提问于 2013-04-09 14:33:29
回答 1查看 1K关注 0票数 0

我需要帮助我的Apache2配置。

我有一些托管在此服务器上的站点不是SSL,还有一个站点是SSL。问题是,输入驻留在服务器上的任何站点的https://将引发带有证书错误的SSL托管站点。

我怎样才能阻止这个网站的显示?

代码语言:javascript
运行
复制
 <IfModule mod_ssl.c>
 NameVirtualHost *:443
 <VirtualHost *:443>
    ServerAdmin miked@********.ca
    ServerName www.********.com
  CheckSpelling on
  CheckCaseOnly on


    DocumentRoot /var/vhosts/********.com
    <Directory />
            Options FollowSymLinks
            AllowOverride All


    </Directory>
    <Directory /var/vhosts/*******.com>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined


    LogLevel error

    CustomLog ${APACHE_LOG_DIR}/*******-ssl_access.log combined env=!chat
    ErrorLog ${APACHE_LOG_DIR}/*******-ssl-error.log


    #   SSL Engine Switch:
    #   Enable/Disable SSL for this virtual host.
    SSLEngine on

    #SSLCertificateFile    /etc/apache2/ssl/apache.crt


    SSLCertificateFile      /etc/apache2/ssl/lubrigard.crt
    SSLCertificateKeyFile   /etc/apache2/ssl/apache.key
    SSLCertificateChainFile /etc/apache2/ssl/digicertCA.crt

    <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
    # MSIE 7 and newer should be able to use keepalive
    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

 </VirtualHost>
 </IfModule>
EN

回答 1

Stack Overflow用户

发布于 2014-01-27 15:46:23

晚了9个月,我知道,我不是apache配置专家,但是-

我认为这个问题的真正解决方案是获得分配给服务器的额外IP地址,而SSL vhost只监听该IP地址。

因为,至少在常规应用程序中(也就是说,如果您不准备使用服务器名称指示(参见这里这里)来避开Windows用户和下面的IE7或8用户),每个SSL证书都需要一个单独的IP地址,因为握手发生在主机名称传递之前,因此只有IP地址是由客户端提供的,因此没有其他干净的方法可以避免,因为主机名称不匹配将在vhost条目中处理其他任何内容时发生,并且访问者可以看到哪个域名实际有效。

但是,一旦人们单击“同意”或“添加异常”以通过警告,可以向SSL vhost添加这样的块,将用户重定向到相应的域。只对域名本身进行测试,而不是对其中的页面或目录进行测试。(部分取自给出这里的第一个示例)

代码语言:javascript
运行
复制
 <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteCond %{HTTP_HOST}   !^(www\.)?********\.com [NC]
      RewriteCond %{HTTP_HOST}   !^$
      RewriteCond %{HTTP_HOST}   ^(.*)$
      RewriteRule ^/(.*)         http://%1/$1 [L,R]
  </IfModule>

...where星号表示具有ssl的域名。这应将所有其他请求重写为HTTP等效项,同时将请求保留给ssl域。

如果您无法获得另一个IP地址,并且取决于您的访问者,也许SNI是可行的。

也许服务器故障的人会知道更多呢?

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

https://stackoverflow.com/questions/15904794

复制
相关文章

相似问题

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