Гаразд, тому я ніколи раніше не мав досвіду роботи з SSL / HTTPS, я мав справу лише зі стандартним HTTP. Нещодавно я почав працювати над сайтом, який потребуватиме SSL. Звичайно, я вийшов і дослідив, як це зробити, і почав. Я дійшов до етапу успішної установки сертифіката SSL - з'являється зелений замок, і сервер відповідає на запити HTTPS на порт 443. Проблема у мене полягає в тому, що незалежно від того, що я роблю, я не можу змусити будь-які сторінки відображатися за допомогою HTTPS / SSL, однак вони виглядали добре на порту 80 / HTTP (поки я не перенаправляю HTTP на HTTPS, що є).
Простіше кажучи, я можу отримати доступ до сайту HTTPS абсолютно добре, проте мої сторінки не надсилаються, а 404 надсилається на кожен запит.
/etc/apache2/sites-available/ evidencenameSense.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
обробляти кожен запит.