Okay, ich habe noch nie Erfahrung mit SSL / HTTPS gehabt, ich habe mich immer nur mit Standard-HTTP befasst. Vor kurzem habe ich begonnen, an einer Site zu arbeiten, die SSL benötigt. Also bin ich natürlich ausgegangen und habe nachgeforscht, wie es geht, und habe angefangen. Ich habe das Stadium der erfolgreichen Installation des SSL-Zertifikats erreicht - das grüne Vorhängeschloss wird angezeigt und der Server antwortet auf HTTPS-Anforderungen an Port 443. Das Problem ist, dass ich mit HTTPS / keine Seiten anzeigen kann, egal was ich tue. SSL, jedoch schienen sie auf Port 80 / HTTP in Ordnung zu sein (bis ich HTTP zu HTTPS umleitete).
Einfach gesagt, ich kann absolut in Ordnung auf die HTTPS-Site zugreifen, aber meine Seiten werden nicht gesendet, sondern für jede Anfrage wird ein 404 gesendet.
/etc/apache2/sites-available/[name weibl.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>
Ich bin mir nicht sicher, ob es noch etwas gibt, das Sie sich ansehen möchten, oder andere Details, aber wenn es welche gibt, lassen Sie es mich wissen.
BEARBEITEN:
Nach einigem Suchen in den Konfigurationsdateien habe ich festgestellt, dass der Server beim Herstellen einer Verbindung zu HTTPS aus irgendeinem Grund das Dokumentstammverzeichnis in der Standardkonfiguration (/ var / www /) verwendet. Diese Standardkonfiguration ist jedoch mit a2ensite nicht aktiviert. Ich kann anscheinend nicht herausfinden, wo sich die Konfiguration befindet, die dies verursacht
quelle
Rewrite
Anweisungen sehen so aus, als würden Sie versuchen, Apache hinter einem schlecht konfigurierten Reverse-Proxy auszuführen. Wenn Ihr Apache die Domain direkt ohne Proxy bereitstellt, sollten Sie einfach alleRewrite
Anweisungen löschen und durch eine einzige ersetzenRedirect
. Konfigurieren Sie für jede Datei separate Protokolldateien,VirtualHost
sodass Sie genau sehen können, welcherVirtualHost
Prozess jede Anforderung verarbeitet.Antworten:
Ist es unbedingt erforderlich, alle http-Anfragen an https umzuleiten? Denn es scheint, dass Sie das hier versuchen.
Ich schlage vor, Sie entfernen zunächst die folgenden Zeilen aus Ihrer conf:
Ich vermute, dass die Syntax dort falsch ist. Versuchen Sie dann erneut, eine Verbindung zu jedem http: // und https: // Protokoll herzustellen.
quelle
Ich kann mich nicht genau erinnern, wie ich es herausgefunden habe, aber ich bin irgendwo auf etwas gestoßen, das vorgeschlagen hat:
<VirtualHost _default_:443>
Anstatt von:
<VirtualHost *:443>
Seitdem ich das ersetzt habe, funktioniert mein SSL einwandfrei.
quelle
Versuchen Sie, Ihre Datei so zu bearbeiten, dass sie ungefähr so aussieht:
Dies ist eine sehr grundlegende Konfiguration. Wenn dies funktioniert, fügen Sie Ihre Weiterleitungen hinzu, falls dies noch erforderlich ist.
Wenn dies nicht funktioniert, zeigen Sie bitte Ihre ssl.conf
quelle