我如何使用VirtualDocumentRoot来启用启用了SSL的www子域?

我可以为http :// www .domain.com和http://domain.com服务 。 另外https://domain.com也可以正常工作。 但不是https :// www .domain.com出于某种原因,这是行不通的。 我甚至在我的网站availible文件夹中创build了一个www.domain.com并启用了它。 我重新加载configuration,但它仍然无法正常工作。

一个通配符证书,所以这不是问题。

<IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin [email protected] ServerName *.domain.com:443 ServerAlias www.domain.com VirtualDocumentRoot /var/www/%0 

谢谢你的帮助。

要在HTTP和HTTPS上同时监听同一站点,您将需要2个虚拟主机,一个用于SSL,另一个用于正常连接。

从“ServerName”参数中删除:443。

我刚刚在我的testing环境中创build了一个configuration,按照您的要求进行操作,这就是我的configuration文件:

 <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin [email protected] ServerName *.srv.fbh VirtualDocumentRoot /www/%0/ SSLEngine on SSLCertificateFile /etc/ssl/test/server.crt SSLCertificateKeyFile /etc/ssl/test/server.key </VirtualHost> </IfModule> 

此外,你有一个ServerAlias的www.domain.com – 这是没有必要的,因为通配符* .domain.com会抓住这一点。

这个 :

 <IfModule mod_ssl.c> <VirtualHost *:443> ServerAlias * UseCanonicalName Off VirtualDocumentRoot /var/www/%0 SSLEngine on SSLCertificateFile /path-to-keys/ca.crt SSLCertificateKeyFile /path-to-keys/yours.key SSLCertificateChainFile /path-to-keys/bundle.crt RequestHeader set X_FORWARDED_PROTO 'https' </VirtualHost> </IfModule> 

当然,你需要正确的文件,并记得把你的yours.key设置为chmod 400 。 我注意到你已经得到了这个部分的工作,只是保持答案更完整。 ;)