我在Ubuntu 10.04.3上遇到Apache上的Aliases问题
我想要做的是如下:
一个子域(mydomain.domain.com)位于端口443上,SSlEngine处于打开状态
端口80上的通配符子域(* .domain.com) – redirect到* .domain.com的端口443:443
我在/ etc / apache2 / sites-available文件夹中有一个文件
<VirtualHost *:80> ServerName mydomain.domain.com DocumentRoot /var/www/mydomain DirectoryIndex index.cfm RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> <VirtualHost *:443> ServerName mydomain.domain.com:443 DocumentRoot /var/www/mydomain DirectoryIndex index.cfm RewriteEngine On RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d RewriteRule ^([a-zA-Z0-9/_/-]+)$ /index.cfm%{REQUEST_URI} [PT] SSLEngine on SSLProtocol -all +SSLv3 +TLSv1 ... ... </VirtualHost> <VirtualHost *:80> ServerName something.domain.com ServerAlias *.domain.com DocumentRoot /var/www/mydomain_all DirectoryIndex index.cfm RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> <VirtualHost *:443> ServerName something.domain.com:443 ServerAlias *.domain.com:443 DocumentRoot /var/www/mydomain_all DirectoryIndex index.cfm RewriteEngine On RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d RewriteRule ^([a-zA-Z0-9/_/-]+)$ /index.cfm%{REQUEST_URI} [PT] SSLEngine on SSLProtocol -all +SSLv3 +TLSv1 ... ... </VirtualHost>
问题是,所有对anything.domain.com的请求实际上是第一个ssl VH ie mydomain.domain.com – 我得到的订单是否错误? 还是别的什么错?
你需要一个NameVirtualHost *:443
指令来作为除了端口上第一个虚拟主机以外的虚拟主机。
根据您的Apache和OpenSSL版本,它可能在启动期间在SSL端口上发出多个虚拟主机的警告 – 可以随意忽略它。
你使用相同的证书(希望是通配符)的两个SSL虚拟主机,或不同的? 如果它们不同,那么连接不支持SNI的客户端将始终获得第一个虚拟主机的证书。