Como redirecionar de HTTPS para HTTP antes de erro do servidor?


10

Eu costumava operar um site com um certificado SSL, mas parei de usar o certificado SSL. O problema é que a maioria dos links externos para o site usa o prefixo https: //.

Eu tentei o https: // para http: // redirecionar no arquivo .htaccess:

RewriteEngine On

RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}

Mas parece, como foi apontado em outro lugar, que o servidor está tentando recuperar o certificado antes de ativar o redirecionamento. Portanto, um erro é mostrado antes que o redirecionamento seja realizado. O erro é um aviso de que o certificado expirou ou se eu excluir a solicitação de assinatura de certificado, um erro de SSL ter recebido um registro que excedeu o comprimento máximo permitido.

Existe alguma maneira de permitir que os links recebidos sejam redirecionados corretamente?


1
O SSL é negociado antes que qualquer solicitação HTTP ocorra, como acho que você descobriu. Acho que você terá problemas para fazer com que isso funcione como você deseja, mas estou votando para migrar para o ServerFault.com caso alguém tenha uma resposta melhor.
Michael

Parece que isso pode ser difícil de alcançar. É realmente uma chatice perder os links criados pela Internet e, pior ainda, para os visitantes pensarem que o site foi comprometido ou desapareceu.

Respostas:


16

A diferença entre http e https é que as solicitações https são enviadas por uma conexão criptografada por SSL. A conexão criptografada por SSL deve ser estabelecida entre o navegador e o servidor antes que o navegador envie a solicitação http.

As solicitações HTTP são, de fato, solicitações HTTP enviadas por uma conexão criptografada SSL. Se o servidor recusar estabelecer uma conexão criptografada ssl, o navegador não terá conexão para enviar a solicitação. O navegador e o servidor não terão como se comunicar. O navegador não poderá enviar o URL que deseja acessar e o servidor não poderá responder com um redirecionamento para outro URL.

Portanto, isso não é possível. Se você deseja responder aos links https, precisa de um certificado SSL.


4

Não, se fosse possível redirecionar de https para http sem um certificado real, seria uma falha de segurança importante.

Considere que, de alguma forma, um criminoso possa redirecionar o servidor seguro do banco para uma conexão insegura sem precisar de um certificado https real para o site, isso permitiria que o criminoso seqüestrasse a conexão sem que o usuário soubesse.

A única solução que posso encontrar é obter um certificado barato e fazer um redirecionamento normal do site HTTPS (que o usuário não pode acessar sem um certificado válido) para o site normal desses links externos.


Certo, é melhor assim. Pena que não há uma maneira de configurar uma substituição aprovada como proprietário do site.

-2

Você deve criar no seu .htaccess

ErrorDocument 500 http://anotherserer.com/errorPage.php

Obrigado pela sugestão. Mesmo com isso no .htaccess, ele não está usando a página digitada para o erro 500 para esse erro específico. Parece que, talvez, nada no .htaccess esteja sendo ativado devido ao erro inicial.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.