Итак, у меня никогда не было опыта работы с SSL / HTTPS, я когда-либо имел дело только со стандартным HTTP. Недавно я начал работу над сайтом, который будет нуждаться в SSL. Поэтому, конечно, я вышел и исследовал, как и начал. Я дошел до стадии успешной установки сертификата SSL - появляется зеленый замок, и сервер отвечает на запросы HTTPS на порт 443. У меня есть проблема, что независимо от того, что я делаю, я не могу заставить отображаться какие-либо страницы с использованием HTTPS / SSL, однако они нормально выглядели на порту 80 / HTTP (пока я не перенаправлю HTTP на HTTPS).
Проще говоря, я могу получить доступ к HTTPS-сайту абсолютно нормально, однако мои страницы не отправляются, скорее 404 отправляется за каждый запрос.
/etc/apache2/sites-available/[name].conf
<VirtualHost *:80>
ServerName [serverName]
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
</VirtualHost>
<VirtualHost *:443>
ServerName [serverName]
ServerAdmin [email]
DocumentRoot [docRoot]
# I know the following SSL cert stuff is correct
SSLEngine On
SSLCertificateFile [...]/[domain].crt
SSLCertificateKeyFile [...]/[certificate].key
SSLCertificateChainFile [...]/[theotherone].crt
ErrorLog ${APACHE_LOG_DIR}/[custom]_error.log
CustomLog ${APACHE_LOG_DIR}/[custom]_access.log combined
<Directory "[docRoot]">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Я не уверен, есть ли что-то еще, на что вы хотели бы взглянуть, или какие-либо другие детали, но если есть, дайте мне знать
РЕДАКТИРОВАТЬ:
После некоторого поиска в файлах конфигурации я установил, что по какой-то причине при подключении к HTTPS сервер использует корневой каталог документа в конфигурации по умолчанию (/ var / www /), однако эта конфигурация по умолчанию не включена с a2ensite. Я не могу понять, где находится конфигурация, которая вызывает это
Rewrite
директивы выглядят так, как будто вы пытаетесь запустить Apache за плохо настроенным обратным прокси-сервером. Если ваш Apache обслуживает домен напрямую, без прокси, вам нужно просто удалить всеRewrite
директивы и заменить их на однуRedirect
. И настройте отдельные файлы журналов для каждого такVirtualHost
, чтобы вы могли точно видеть, какойVirtualHost
процесс обрабатывает каждый запрос.