VirtualHost:停用 SSL 的全部捕获 (443)
Posted
技术标签:
【中文标题】VirtualHost:停用 SSL 的全部捕获 (443)【英文标题】:VirtualHost: Deactivate catch all for SSL (443) 【发布时间】:2015-02-28 10:30:10 【问题描述】:我创建了一个 SSL 虚拟主机
<VirtualHost *:443>
ServerName cloud.url.com
ServerAlias www.url.com
DocumentRoot /var/www/owncloud
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/owncloud.crt
SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key
</VirtualHost>
我的问题是现在每个 SSL 连接都指向/var/www/owncloud
例如https://url.com 将转到/var/www/owncloud
而不是/var/www/
我怎样才能只为cloud.url.com
和其他域“忽略 ssl”设置 VirtualHost - 所以他们留在那里的目录中?
【问题讨论】:
【参考方案1】:事实上,你的虚拟主机说 www.url.com 和 cloud.url.com 去 /var/www/owncloud。我认为您不希望 www.url.go 指向您自己的云。所以,只需删除 serverAlias :
<VirtualHost *:443>
ServerName cloud.url.com
DocumentRoot /var/www/owncloud
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/owncloud.crt
SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key
</VirtualHost>
我认为您没有设置任何虚拟主机在端口 443 上侦听 url.com。这就是为什么 apache 将其重定向到使用 https 配置的 url。 如果你不想在 url.com 上使用 ssl,你可以这样做:
<VirtualHost *:443>
ServerName url.com
Redirect 301 / http://url.com
</VirtualHost>
【讨论】:
【参考方案2】:找到解决方案,将其放在一个文件中:
<VirtualHost *:443>
ServerName cloud.domain.com
ServerAlias www.cloud.domain.com
DocumentRoot /var/www/owncloud
<Directory /var/www/owncloud/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/owncloud.crt
SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key
</VirtualHost>
<VirtualHost *:443>
ServerName domain.com
ServerAlias *.domain.com
Redirect 301 / http://domain.com
</VirtualHost>
谢谢!
【讨论】:
以上是关于VirtualHost:停用 SSL 的全部捕获 (443)的主要内容,如果未能解决你的问题,请参考以下文章
使用 Virtualhost 在 Apache 中配置 SSL
apache配置virtualhost https(ssl)
在 ssl VirtualHost 中设置 Apache mod_jk
带有 mod-proxy 和 SSL 的 Apache VirtualHost