Я настраиваю SSL на своем сервере Apache / 2.4.6 RHEL. В httpd.conf
, установите VirtualHosts, как показано ниже ...
<VirtualHost *:80>
ServerName foo.bar
Redirect permanent / https://foo.bar
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /path/to/file
ServerName foo.bar
SSLEngine on
SSLCertificateFile /path/to/file
SSLCertificateKeyFile /path/to/file
SSLCertificateChainFile /path/to/file
</VirtualHost>
Когда я комментирую DocumentRoot в httpd.conf вне VirtualHosts, веб-браузер возвращает ошибку 404 The requested URL / was not found on this server.
Нужен ли мне DocumentRoot вне VirtualHost *:443
? Если нет, что происходит, когда я это комментирую?
Оказывается, я настроил ssl.conf отдельно и неправильно. Исправлен ssl.conf и удален VirtualHost для 443 из httpd.conf, и он работает как шарм!
В некоторой конфигурации apache у вас будет определен DocumentRoot, который, вероятно, недоступен для сервера, вы можете проверить это, выполнив для вариантов RHEL:
/usr/sbin/httpd -S
и Debian
/usr/sbin/apache2ctl -S
Он должен содержать переменную:
Main DocumentRoot: "/var/www/html"
Вы можете либо настроить это, либо установить его в разделе виртуального хоста (я бы предпочел, чтобы он был установлен таким же, как SSL vhost).