Por que configurei HTTP_X_FORWARDED_PROTO e desativei HTTPS no Apache 2.4?

Por que configurei HTTP_X_FORWARDED_PROTO e desativei HTTPS no Apache 2.4?

Recentemente atualizei meu site: CMS (Drupal), seu SO (Ubuntu 14.04) e Apache (2.4.7).

A situação é que ao navegar emhttps://example.com/qualquer que sejaPHP não consegue detectar HTTPS. $_SERVER['HTTPS']está vazio e $_SERVER['SERVER_PORT']retorna 80. E isso causa um problema porque o Drupal não consegue detectar HTTPS e está servindo arquivos HTTP (conteúdo misto).

A única variável que mostra que a conexão está em HTTPS é HTTP_X_FORWARDED_PROTO, e o Drupal não lida com essa configuração para servir conteúdo.

<<< Não tenho proxy reverso ou qualquer configuração avançada além de LAMP e Drupal, e apenas um único site. >>>Errado, eu estava administrando meu site com CloudFlare.

Considere que não quero uma solução Drupal, já consegui isso. Quero saber por que o Apache não está enviando ao PHP os vars SERVER corretos ou o que pode estar errado com minha configuração.

Obrigado pela ajuda.

<<< Edição Final >>>PD: Estou executando meu site em um proxy reverso, CloudFlare. É fácil esquecer isso depois de instalar. Verifique minha resposta para ver a opção que você deve definir para obter os vars SERVER esperados.

Responder1

O problema é que esqueci que estava usando o CloudFlare (fácil de esquecer depois de instalado). É por isso que HTTP_X_FORWARDED_PROTO disse HTTPS, porque eu estava atrás de um proxy reverso.

Minha configuração CloudFlare em CRYPTO/SSL com SPDY também dizia: Flexível.Quando alterado para completo, o PHP retorna os vars HTTPS e SERVER_PORT esperados.

informação relacionada