我可以服务http://万维网.domain.com 和http://域名.com。 还https://domain.com 也可以。但不是https://万维网.domain.com 不知为何不起作用。我甚至在 sites-availible 文件夹中创建了 www.domain.com 并启用了它。我重新加载了配置,但仍然不起作用。
我有A通配符证书所以这不是问题。
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName *.domain.com:443
ServerAlias www.domain.com
VirtualDocumentRoot /var/www/%0
谢谢你的帮助。
答案1
要让同一个站点同时监听 HTTP 和 HTTPS,您将需要 2 个虚拟主机,一个用于 SSL,一个用于普通连接。
从“ServerName”参数中删除:443。
我刚刚在我的测试环境中创建了一个按照您在此处请求的配置,这是我的工作配置文件中的内容:
<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>
此外,您有一个 www.domain.com 的 ServerAlias - 这不是必需的,因为通配符 *.domain.com 会捕获它。
答案2
这:
<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
。我确实注意到您已经让这部分工作了,只是让答案更完整。;)