После включения HTTPS на моем сервере Apache2 - я получаю 404 ошибки при каждом запросе [закрыто]

Хорошо, у меня никогда не было опыта работы с 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. Я не могу понять, где находится вызывающая это конфигурация

10
задан 1 December 2016 в 20:14
3 ответа

Я не могу точно вспомнить, как я это понял, но я где-то наткнулся на то, что предлагало поместить:

Вместо:

После замены мой SSL работает отлично.

11
ответ дан 2 December 2019 в 21:58

Обязательно ли перенаправлять все HTTP-запросы на https? Потому что кажется, что вы здесь пытаетесь сделать именно это.

Я предлагаю вам начать с удаления следующих строк из вашего conf:

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]

Я подозреваю, что синтаксис может быть неправильным. Затем попробуйте подключиться еще раз по каждому протоколу http: // и https: //.

11
ответ дан 2 December 2019 в 21:58

Попробуйте отредактировать файл, чтобы он выглядел примерно так:

Это очень простая конфигурация, если она работает, добавьте свои перенаправления, если она еще необходима.

Если это не работает, покажите your ssl.conf

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
         <Directory "[docRoot]">
        AllowOverride All
        </Directory>
        DocumentRoot [docRoot]
        ServerName [serverName]
</VirtualHost>

<VirtualHost *:443>
        SSLEngine on
       SSLCertificateFile [...]/[domain].crt
       SSLCertificateKeyFile [...]/[certificate].key
       SSLCertificateChainFile [...]/[theotherone].crt
         <Directory "[docRoot]">
        AllowOverride All
        </Directory>
        DocumentRoot [docRoot]
        ServerName [serverName]
</VirtualHost>
10
ответ дан 2 December 2019 в 21:58

Теги

Похожие вопросы