Ubuntu 14.14中的通配符域

时间:2015-02-26 22:02:15

标签: apache configuration wildcard-subdomain

我在ubuntu VPS上有一个SSL域,我希望所有子域都指向一般的example.com,例如:site1.example.com,site2.example.com从example.com加载代码。

我知道如何使用虚拟主机完成此操作,但我不希望每次都添加新的虚拟主机并重新启动apache。

所以我读了Willcard域名'但我无法设置它。另外阅读我必须添加这个o虚拟主机定义' ServerAlias * .example.com'还有一些我必须添加区域记录或者像这样的东西。

<VirtualHost IP:443>

VirtualDocumentRoot /var/www/example.com/public/

SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite 
SSLCertificateFile 
SSLCertificateKeyFile 
SSLCertificateChainFile 

ServerAlias *.example.com
Options Indexes FollowSymLinks MultiViews
</VirtualHost>

我在网络服务器方面很年轻,所以任何详细的步骤都会有所帮助。

2 个答案:

答案 0 :(得分:1)

首先,您必须拥有通配符SSL证书并安装它。它们与标准SSL证书不同。一个人的价格要贵一些。您可以创建一个自签名的,但这只适用于使用。

进行测试

更正,我误解了。如果要将所有子域重定向到父域,则不需要通配符SSL。如果您还想要具有SSL的唯一子域,则只需要它。

接下来你已经是ServerAlias * .example.com

最后,对于每个子域,您需要配置CNAME DNS记录以将子域指向父example.com。我强烈建议您在开始尝试更改DNS设置之前彻底研究这个问题。有些更改可能会持续很长一段时间,即使您再次更改它们也是如此。我不知道你用什么来管理你的DNS所以我不能提供细节,如果你不熟悉你正在做的事情,我也不鼓励你做这些改变。您可以将您的网站DNS分解几天。也就是说,只要你不搞乱任何现有的东西,它实际上并不是很困难。

在CPanel中,我可以为通配符子域配置DNS记录,例如..

  • 名称:subdomain.example.com。
  • TTL:14400
  • 输入:CNAME
  • 记录:example.com

答案 1 :(得分:0)

<VirtualHost *:443>

ServerAdmin x@xxx.org
ServerAlias  *.yourdomain.net
#ServerName could be any non-exist sub-domain 
ServerName   blabla.bla.yourdomain.net

ServerSignature On
SSLEngine On
SSLCertificateFile path_of_your_cert
SSLCertificateKeyFile path_of_your_key
SSLCACertificateFile path_of_your_intermediate_cert
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder On

DirectoryIndex index.html index.php index.htm
DocumentRoot /yourWebRoot

RewriteEngine On
RewriteMap lowercase int:tolower
# Disable access to domains like "a.b.yourdomain.net"
RewriteCond %{HTTP_HOST} ^(.*)\.(.*)\.yourdomain\.net$
RewriteRule ^.*$ - [R=502,L]
# Rewrite sub.yourdomain.net to folder /yourWebRoot/sub
RewriteCond %{HTTP_HOST} ^(.*)\.yourdomain\.net$
RewriteRule ^(.*)$ /yourWebRoot/${lowercase:%1}/$1
RewriteRule (.*)/icons/(.*) /usr/share/apache2/icons/$2 [L]

DirectoryIndex  index.php index.htm index.html

</VirtualHost>

如果您希望您的子域全部转到同一个文档根文件夹,请删除我的示例conf中的所有重写。

ServerName是conf文件中必备的

如果您没有通配符ssl(70 $ -1000美元/年),请使用重写将所有其他域重定向到主域。 (但这可能导致cookie / postdata泄漏)