Pergunta

Eu configurei dois vhosts locais (http e https autoassinados) para billing.example.com e experimentando-os no Firefox com o Firebug. O único objetivo HTTP VHOST está redirecionando todas as solicitações para HTTPS.

Quase cada vez que solicito a página de https, um ou dois arquivos com recursos associados (imagens, js, css, etc ...) e às vezes a página PHP retorna 400 solicitação ruim na janela do Firebug, às vezes um ou dois arquivos exibidos conforme carregado para muito tempo. Quando clico no link Problema no Firebug, o arquivo carrega como deveria. Além disso, os arquivos de solicitação ruim ou não carregam mudam quase cada vez que estou carregando a página.

Alguma ideia?

Servidor: Ubuntu 10.04, Apache/2.2.14 com mod_ssl

Vhosts:

Listen 80
<VirtualHost *:80>
    ServerName billing.example.com
    UseCanonicalName On
    DocumentRoot /code/site/billing
    ...
    RewriteEngine On
    RewriteRule ^/(.*)$ https://billing.example.com/$1
</VirtualHost>

Listen 443
<VirtualHost *:443>
    ServerName billing.example.com
    UseCanonicalName On
    DocumentRoot /code/site/billing
    ...
    SSLEngine On 
    SSLCertificateFile /code/site/ssl/example.crt
    SSLCertificateKeyFile /code/site/ssl/example.key
</VirtualHost>

REST são configurações padrão do Ubuntu Apache2.

Foi útil?

Solução

Eu estava tendo esse problema com o Apache 2.2.9 e a atualização para o Apache 2.2.22 resolveu o problema para mim.

Eu receberia códigos de resposta 400 aleatórios em algumas das solicitações da página. Às vezes, imagens, às vezes solicitações de Ajax. Ocasionalmente, seria a própria página que retornaria um 400 junto com esta mensagem.

Pedido ruim que seu navegador enviou uma solicitação que esse servidor não conseguia entender. O campo de cabeçalho de solicitação está ausente ':' Separator. viver

Encontrei o seguinte relatório do tapete para isso parecia relacionado. O bug foi corrigido no Apache 2.2.15: https://bugzilla.redhat.com/show_bug.cgi?id=652335

Eu acho que esse bug é a causa de muitos erros aleatórios ao usar o HTTPS: seu navegador enviou uma solicitação de que esse servidor não pudesse entender o campo do cabeçalho da solicitação está ausente ':' Separator.

Então, pensei em tentar atualizar para o mais recente Apache com o mais recente MOD_SSL - e isso parecia funcionar.

Outras dicas

Para a parte SSL, você pode querer virar UseCanonicalName Off Para hosts virtuais, você provavelmente está usando um domínio diferente do servidor principal e isso pode fazer com que você procure arquivos fora do host virtual.

Para completar na porta 80, eu adicionaria [r, l] ao redirecionamento.

RewriteEngine  On
RewriteRule    ^/(.*) http://billing.example.com/$1 [L,R]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top