Okej, więc nigdy wcześniej nie miałem doświadczenia z SSL / HTTPS, zawsze miałem do czynienia ze standardowym HTTP. Niedawno zacząłem pracować na stronie, która będzie wymagała SSL. Więc oczywiście wyszedłem i zbadałem, jak to zrobić i jak zacząć. Udało mi się pomyślnie zainstalować certyfikat SSL - pojawia się zielona kłódka, a serwer odpowiada na żądania HTTPS na porcie 443. Mam problem z tym, że bez względu na to, co robię, nie mogę wyświetlić żadnych stron przy użyciu HTTPS / SSL, jednak wyglądały dobrze na porcie 80 / HTTP (dopóki nie przekieruję HTTP na HTTPS).
Mówiąc wprost, mogę uzyskać dostęp do strony HTTPS absolutnie w porządku, jednak moje strony nie są wysyłane, a 404 jest wysyłane za każde żądanie.
/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>
Nie jestem pewien, czy jest coś jeszcze, na co chciałbyś spojrzeć, czy jakieś inne szczegóły, ale jeśli tak, daj mi znać.
EDYTOWAĆ:
Po kilku przeszukiwaniu plików konfiguracyjnych ustaliłem, że z jakiegokolwiek powodu, podczas łączenia się z HTTPS, serwer używa katalogu głównego dokumentu w domyślnej konfiguracji (/ var / www /), jednak ta domyślna konfiguracja nie jest włączona z a2ensite. Nie mogę ustalić, gdzie znajduje się konfiguracja, która to powoduje
Rewrite
dyrektywy wyglądają, jakbyś próbował uruchomić Apache za źle skonfigurowanym odwrotnym proxy. Jeśli twój Apache obsługuje domenę bezpośrednio, bez pośrednictwa, powinieneś po prostu usunąć wszystkieRewrite
dyrektywy i zastąpić je jednąRedirect
. I skonfiguruj osobne pliki dziennika dla każdego zVirtualHost
nich, abyś mógł dokładnie zobaczyć, któryVirtualHost
proces przetworzy każde żądanie.