在我开始解释我的问题之前,值得注意的是我的 DNS 记录设置正确。
这是一个奇怪的错误,我有一台 IP 为:的服务器,82.4.165.27
托管多个虚拟目录。我正在使用 Apache2。
我的http://test.fakepath/
网址是通常设置转发到https://test.fakepath
。这样就行了。目前它只是加载预期的网页。
因此,http://test.fakepath/
url 可以按预期工作,但是 却https://test.fakepath/
不行。它错误地加载了https://home.fakepath/
。
由于某种原因,apache 服务器无法识别*:443
该站点的版本https://test.fakepath/
。
apache2ctl -S
输出:
[Sat Apr 11 03:31:29.843972 2015] [core:error] [pid 11925] (EAI 2)Name or service not known: AH00547: Could not resolve host name *443 -- ignoring!
VirtualHost configuration:
*:443 is a NameVirtualHost
default server home.fakepath (/etc/apache2/sites-enabled/default.conf:6)
port 443 namevhost home.fakepath (/etc/apache2/sites-enabled/default.conf:6)
port 443 namevhost cloud.fakepath (/etc/apache2/sites-enabled/default.conf:20)
*:80 is a NameVirtualHost
default server home.fakepath (/etc/apache2/sites-enabled/default.conf:1)
port 80 namevhost home.fakepath (/etc/apache2/sites-enabled/default.conf:1)
port 80 namevhost cloud.fakepath (/etc/apache2/sites-enabled/default.conf:15)
port 80 namevhost test.fakepath (/etc/apache2/sites-enabled/default.conf:29)
port 80 namevhost vb.fakepath (/etc/apache2/sites-enabled/default.conf:44)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="steven" id=1000 not_used
Group: name="www-data" id=33 not_used
我的文件:
<VirtualHost *:80>
ServerName home.fakepath
ServerAdmin admin@fakepath
Redirect permanent / https://home.fakepath/
</VirtualHost>
<VirtualHost *:443>
ServerName home.fakepath
ServerAdmin admin@fakepath
DocumentRoot /var/www/home.fakepath
SSLCertificateFile /home/steven/.ssl/home.fakepath.crt
SSLCertificateKeyFile /home/steven/.ssl/home.fakepath.key
SSLCertificateChainFile /home/steven/.ssl/sub.class1.server.ca.pem
</VirtualHost>
<VirtualHost *:80>
ServerName test.fakepath
ServerAdmin admin@fakepath
DocumentRoot /var/www/test.fakepath
#Redirect permanent / https://test.fakepath/
</VirtualHost>
<VirtualHost *443>
ServerName test.fakepath
ServerAdmin admin@fakepath
DocumentRoot /var/www/test.fakepath
SSLCertificateFile /home/steven/.ssl/test.fakepath.crt
SSLCertificateKeyFile /home/steven/.ssl/test.fakepath.key
SSLCertificateChainFile /home/steven/.ssl/sub.class1.server.ca.pem
</VirtualHost>
答案1
由于某种原因,Apache 服务器无法识别 *:443 版本的https://test.fakapath/地点。
你需要改变
<VirtualHost *443>
到:
<VirtualHost *:443>
在 test.fakapath 的 vhost 中
(请注意您的配置中缺少冒号)