我试图设置http - > https重定向的子域名在我的网站上,由Apache提供(版本:2.2.31)。我购买了一个为我的主站点(www.domain.com
)正确安装的通配符SSL证书,因为我在地址旁边有一个绿色锁,所以应该完成该部分。
问题:浏览到subdomain.domain.com
重定向到www.domain.com
,我无法找出原因。我一直在阅读和关注this页以及其他几个内容相似的网页,但我错过了关键要素。
主网站由/var/www/html
提供,子网域由/var/www/vhosts/subdomain
提供。另外,我收到此错误:
[warn] _default_ VirtualHost overlap on port 443, the first has precedence
这是/etc/httpd/conf/httpd.conf
的vhost部分:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias www.domain.com
#Redirect permanent / https://www.domain.com
Redirect 302 / https://www.domain.com
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain.domain.com
ServerAlias subdomain.domain.com
#Redirect permanent / https://subdomain.domain.com
Redirect 302 / https://subdomain.domain.com
</VirtualHost>
这里/etc/httpd/conf.d/ssl.conf
:
<VirtualHost *:443>
ServerName www.domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/html
...
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /path/to/cert
SSLCertificateKeyFile /path/to/key
SSLCertificateChainFile /path/to/bundle
</VirtualHost>
<VirtualHost *:443>
ServerName subdomain.domain.com
ServerAlias subdomain.domain.com
DocumentRoot /var/www/vhosts/subdomain
...
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /path/to/cert
SSLCertificateKeyFile /path/to/key
SSLCertificateChainFile /path/to/bundle
</VirtualHost>
此处的apachectl -S
输出(我的域名已编辑/替换):
非常感谢任何帮助。
=============================================== ========================
修改:我删除了“永久”一词,清除了我的缓存,问题仍然存在。这似乎与警告有关,对吗?
此外,无论我使用subdomain
哪个subdomain
即使它不存在,我也能获得成功的回复。我可以输入http://<anything>.domain.com
所需的任何内容,然后进入主站点。 https://<anything>.domain.com
和{{1}}都使用https加载主网站。
答案 0 :(得分:2)
问题很简单,但难以理解,至少对我而言。在/etc/httpd/conf.d/ssl.conf
中,我需要为VirtualHost配置添加以下行以使其不同:
NameVirtualHost *:443
现在一切都按预期工作了。