
Problem
Apache meldet kein HTTPS in der $_SERVER
Variable von PHP. Das Zertifikat ist korrekt konfiguriert gemäßsslcheck.nlund die Website leitet jede HTTP-Anfrage auf das HTTPS-Äquivalent weiter.
$_SERVER
Variable:
HTTPS
Schlüssel existiert nichtSERVER_PORT
beträgt 80 statt 443HTTP_X_FORWARDED_PROTO
ist nicht gesetztREQUEST_SCHEME
ist http statt https
Ohne diese Werte können das Symfony-Framework und Wordpress nicht feststellen, ob die Website über eine sichere Verbindung ausgeführt wird.
Aufbau
Ich betreibe einBitnami-LampeStapel. Soweit ich das beurteilen kann, betreibt der Server keinen Reverse-Proxy. Die Website hat zwar mod_pagespeed konfiguriert, aber ich glaube nicht, dass dies als Reverse-Proxy konfiguriert ist. Ich habe versucht, mod_pagespeed für einen Test-Vhost zu deaktivieren, aber Apache meldet weiterhin http.
Was könnte sonst der Grund dafür sein, dass Apache HTTP/HTTPS falsch meldet?
Aktualisieren
Ausgabe vonnetstat -plnt
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 65034/master
tcp 0 0 127.0.0.1:2812 0.0.0.0:* LISTEN 2295/monit
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1801/mysqld.bin
tcp 0 0 127.0.0.1:12301 0.0.0.0:* LISTEN 48346/opendkim
tcp 0 0 127.0.0.1:21 0.0.0.0:* LISTEN 731/vsftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1889/sshd
tcp6 0 0 ::1:25 :::* LISTEN 65034/master
tcp6 0 0 :::443 :::* LISTEN 25401/httpd
tcp6 0 0 :::80 :::* LISTEN 25401/httpd
tcp6 0 0 :::22 :::* LISTEN 1889/sshd
Vhost-Konfiguration:
<VirtualHost *:80>
ServerName mydomain.com
DocumentRoot "/opt/bitnami/apps/mydomain/htdocs/web"
RewriteEngine On
#redirect non-www to https://www.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#redirect http://www. to https://www.
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
CustomLog /opt/bitnami/apache2/logs/mydomain-http.log combined
Include "/opt/bitnami/apps/mydomain/conf/httpd-app.conf"
</VirtualHost>
<VirtualHost *:443>
ServerName mydomain.com
DocumentRoot "/opt/bitnami/apps/mydomain/htdocs/web"
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
CustomLog /opt/bitnami/apache2/logs/mydomain-https.log combined
SetEnv HTTPS on #Added this to force https environment variable
Include "/opt/bitnami/apps/mydomain/conf/httpd-app.conf"
</VirtualHost>
Antwort1
Für mich sieht es so aus, als würden Sie auf Apache tatsächlich über HTTP und nicht über HTTPS zugreifen (was Ihnen auch gesagt wird).
Wenn Sie Ihre Apache-Konfigurationsdatei überprüfen, sollten Sie zwei Sites haben, eine für :80 (HTTP) und eine für :443 (HTTPS). Erstere sollte den Verkehr auf letztere umleiten. Wenn Sie sicherstellen, dass die Site mit dem VIRTUALHOST, der auf :80 endet (was ich glaube, dass Sie tatsächlich verwenden), eine andere Protokolldatei hat als die mit der Endung :443 (was der HTTPS-Host ist, den Sie vermutlich verwenden), können Sie die Protokolldateien ansehen, um sicherzugehen, welche Site Sie sich ansehen.
Es ist möglich, dass etwas die unverpackte HTTP-Konversation zu Apache tunnelt, nachdem der SSL-Teil verwaltet wurde, aber nach einem Blick auf die Bitnampi-Dokumente ist klar, dass sie das nicht tun, also müssten Sie selbst so etwas wie Stunnel eingerichtet haben. Wie Hakan Lindqvist sagte, wenn netstat -lpn nur Apache anzeigt, der auf :443 und :80 lauscht, dann muss die Wahrheit in der Apache-Konfigurationsdatei liegen. Wie ich oben erwähnt habe, schlage ich vor, die Protokolle zu konfigurieren, um sicherzugehen, aber im Allgemeinen gilt: Wenn es wie eine Ente aussieht, wie eine Ente quakt und gerne Zeit in Teichen verbringt und im Regen schwimmt, gehen Sie zunächst davon aus, dass es eine Ente ist, da es unwahrscheinlich ist, dass es eine Katze ist.
Das könnte für Sie hilfreich sein:https://wiki.bitnami.com/Components/Apache#How_to_enable_HTTPS_support_with_SSL_certificates
Beachten Sie, dass dies ein Beispiel für eine HTTPS-Site-Konfiguration ist (aus dem obigen Link).
<VirtualHost *:443> SSLEngine on DocumentRoot "/opt/bitnami/apps/sugarcrm/htdocs" ServerName my-sugarcrm.example.com SSLCertificateFile "/opt/bitnami/apache2/conf/my-sugarcrm.crt" SSLCertificateKeyFile "/opt/bitnami/apache2/conf/my-sugarcrm.key" </VIrtualHost>