基于名称的虚拟主机服务于同一SSL站点

时间:2014-06-17 14:26:13

标签: ssl https apache2 vhosts

在我的服务器上,我有以下vhost定义:

<VirtualHost *:80 *:443>
  ServerAdmin admin@mysiste.com
  ServerName mysite.com
  ServerAlias www.mysite.com
  DocumentRoot /var/www/mysite.com/current/public
  SSLEngine on
  SSLCertificateKeyFile /etc/ssl/ssl.key/myserver.key
  SSLCertificateFile /etc/ssl/ssl.crt/mysite_com.crt
  SSLCertificateChainFile /etc/ssl/ssl.crt/mysite_com.ca-bundle
  <Directory /var/www/mysite.com/current/public>
    Allow from all
    Options -MultiViews
  </Directory>
</VirtualHost>

网站本身运行正常,问题是如果我尝试使用https托管在同一台服务器上的任何其他网站(vhost)并跳过警告我会收到mysite.com。对于临时用户来说,这不是一个问题,但我注意到Google试图在我的&#34;其他&#34;上编写了大量的网址。网站通过https实际上是来自mysite.com的网页,我担心我会因重复内容而受到处罚。

如何拒绝通过https提供其他网站?

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。如需进一步参考,这是Ubuntu 12.04。

/etc/apache2/ports.conf中将以下内容添加到<IfModule mod_ssl.c>部分:

NameVirtualHost *:443

根据上述文件中的说明,在/etc/apache2/sites-available/default-ssl中从<VirtualHost _default_:443>修改为<VirtualHost *:443>

然后:

sudo a2ensite default-ssl
sudo service apache2 reload

完成。