
Problema
Apache no informa HTTPS en la $_SERVER
variable de PHP. El certificado está configurado correctamente segúnsslcheck.nly el sitio web redirige cada solicitud HTTP al equivalente HTTPS.
$_SERVER
variable:
HTTPS
la clave no existeSERVER_PORT
es 80 en lugar de 443HTTP_X_FORWARDED_PROTO
no está configuradoREQUEST_SCHEME
es http en lugar de https
Sin estos valores, el marco Symfony y Wordpress no pueden determinar si el sitio web se ejecuta en una conexión segura.
Configuración
estoy ejecutando unLÁMPARA Bitnamipila. Hasta donde puedo decir, el servidor no ejecuta un proxy inverso. El sitio web tiene mod_pagespeed configurado, pero no creo que esté configurado como un proxy inverso. Intenté deshabilitar mod_pagespeed para un vhost de prueba, pero Apache sigue informando http.
¿Cuál más podría ser la razón por la que Apache informa incorrectamente HTTP/HTTPS?
Actualizar
Salida denetstat -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
Configuración de host virtual:
<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>
Respuesta1
Me parece que, de hecho, estás accediendo a Apache a través de HTTP, no de HTTPS (que es lo que te dice).
Si revisa su archivo de configuración de Apache, debería tener 2 sitios, uno para: 80 (HTTP) y otro para: 443 (HTTPS). El primero debería redirigir el tráfico al segundo. Si se asegura de que el sitio con VIRTUALHOST que termina en :80 (que es lo que creo que está usando) tenga un archivo de registro diferente al que termina en :443 (que es el host HTTPS que cree que está usando), entonces Podrás ver los archivos de registro y, sin duda, saber qué sitio estás viendo.
Es posible que algo esté canalizando la conversación HTTP desenvuelta a Apache, después de haber administrado la parte SSL, pero después de haber examinado los documentos de bitnampi, no hacen eso, por lo que usted mismo tendría que haber configurado algo como stunnel. Como dijo Hakan Lindqvist, si netstat -lpn muestra solo apache escuchando en :443 y :80, entonces la verdad debe estar en el archivo de configuración de apache. Como mencioné anteriormente, sugiero configurar los registros para estar seguro, pero en general, si parece un pato, grazna como un pato y le gusta pasar tiempo en estanques, nadar bajo la lluvia, primero trabaje en la suposición de que es un pato. ya que es poco probable que sea un gato.
Puede que esto le resulte útil:https://wiki.bitnami.com/Components/Apache#How_to_enable_HTTPS_support_with_SSL_certificates
Vale la pena señalar que este es un ejemplo de configuración de sitio HTTPS (del enlace anterior)
<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>