我的Apache2有一个问题,我可能做了一个configuration错误,但我没有得到什么。
我所有的httpsstream量总是redirect到一个页面,我不能添加不同的https页面。
这是我的configuration:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow,deny allow from all AddHandler cgi-script .py </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/www1/ ServerName www1.lucas.myurl.be </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/www2/ ServerName www2.lucas.myurl.be </VirtualHost> <VirtualHost *:443> DocumentRoot /usr/share/roundcube/ ServerName webmail.lucas.myurl.be SSLEngine on SSLCertificateFile PlaceOFMy1stCert SSLCertificateKeyFile PlaceOfMy1stKey </VirtualHost> <VirtualHost *:80> DocumentRoot /usr/share/roundcube/ ServerName webmail.lucas.myurl.be Redirect / https://webmail.lucas.myurl.be/ </VirtualHost> <VirtualHost *:443> DocumentRoot /var/www ServerName secure.lucas.myurl.be SSLEngine on SSLCertificateFile My2ndCert SSLCertificateKeyFile My2ndKey </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www ServerName secure.lucas.myurl.be Redirect / https://secure.lucas.myurl.be/ </VirtualHost>
问题是我重新启动Apache2时得到一个默认覆盖警告,但我不明白它来自哪里。
[warn] _default_ VirtualHost overlap on port 443, the first has precedence httpd not running, trying to start
所以当我去secure.lucas.myurl.be它去https://webmail.lucas.myurl.be ,而不是去https://secure.lucas.myurl.be
那么,我需要添加到我的configuration,使其redirect到正确的SSL页面,而不是redirect到第一个443redirect?
很正常的问题。 每个IP只能有一个SSL证书。 你在这里所有的接口都有2个SSL模块,所以apache只会抢先一个。
还有可能您仍然启用了默认的SSL虚拟主机2。
使用此命令检查启用了哪些虚拟主机:
apache2ctl -S
这会给你一个清单。
您可以在1个IP上拥有多个SSL块,但必须为所有块使用相同的证书。
这听起来像SNI没有启用。 这将解释为什么他们都去同一页。 如果您正在运行Debian Lenny或Debian Squeeze,我相信它会起作用。
看看这个页面它描述了如何在主机上启用SNI。 注意这是用于名称虚拟主机。 从您的configuration看起来好像您正在使用命名的虚拟主机。