É ruim redirecionar http para https?

245

Acabei de instalar um certificado SSL no meu servidor.

Em seguida, ele configura um redirecionamento para todo o tráfego no meu domínio na porta 80 para redirecioná-lo para a porta 443.

Em outras palavras, todo o meu http://example.com tráfego agora é redirecionado para a versão https://example.com apropriada da página.

O redirecionamento é feito no meu arquivo Apache Virtual Hosts com algo parecido com isto ...

RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 

A minha pergunta é, existem algumas desvantagens em usar o SSL?

Como este não é um Redirecionamento 301, vou perder o sumo / ranking do link nos mecanismos de pesquisa ao mudar para https ?

Eu agradeço a ajuda. Eu sempre quis configurar SSL em um servidor, apenas para a prática de fazê-lo, e finalmente decidi fazer isso hoje à noite. Parece estar funcionando bem até agora, mas não tenho certeza se é uma boa ideia usar isso em todas as páginas. Meu site não é comércio eletrônico e não manipula dados confidenciais; é principalmente pela aparência e a emoção de instalá-lo para o aprendizado.

EDIÇÃO ATUALIZADA

Estranhamente, o Bing cria essa captura de tela a partir do meu site, agora que está usando HTTPS em todos os lugares ...

    
por JasonDavis 28.01.2014 / 01:12

12 respostas

309

O sinalizador [R] por si só é um redirecionamento 302 ( Moved Temporarily ). Se você realmente quer que as pessoas usem a versão HTTPS do seu site (sugestão: você usa), então você deve usar [R=301] para um redirecionamento permanente:

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L] 

Um 301 mantém todos os seus pageranks adquiridos no site e com muito trabalho intacto . Certifique-se de que mod_rewrite esteja ativado:

a2enmod rewrite

Para responder à sua pergunta exata:

Is it bad to redirect http to https?

Inferno não. É muito bom.

    
por 28.01.2014 / 01:27
49

Embora eu apoie a ideia de sites somente SSL, eu diria que uma desvantagem é a sobrecarga, dependendo do design do seu site. Por exemplo, se você estiver veiculando muitas imagens individuais em tags img, isso poderá fazer com que seu site seja executado muito mais lentamente. Eu aconselharia qualquer um que usasse somente servidores SSL para garantir que eles funcionassem da seguinte maneira.

  1. Verifique se há links internos em todo o site e verifique se todos eles usam HTTPS, caso você especifique seu próprio nome de domínio em links, para não causar seus próprios redirecionamentos.
  2. Atualize seu <meta property="og:url" para usar a versão https do seu domínio.
  3. Se você usar <base href= novamente, atualize para usar HTTPS.
  4. Instale o protocolo SPDY se possível
  5. Certifique-se de usar os sprites de imagem CSS, sempre que possível, para reduzir o número de solicitações.
  6. Atualize seus sitemaps para indicar o status do https, para que os spiders com o tempo aprendam essa alteração.
  7. Altere as preferências do mecanismo de pesquisa, como as Ferramentas do Google para webmasters, para preferir HTTPS
  8. Onde possível, descarregue qualquer mídia stática para servidores HTTPS CDN.

Se o assunto acima for abordado, duvido que você tenha muitos problemas.

    
por 28.01.2014 / 03:08
38

Se você configurou https, deverá usá-lo em todos os lugares do site. Você evitará o risco de problemas de conteúdo misto e, se tiver as ferramentas necessárias, por que não tornar o site inteiro seguro?

Em relação ao redirecionamento de http para https, a resposta não é simples.

Redirecionar tornará muito mais fácil para os usuários, basta digitar whateversite.com e ser redirecionado para https.

Mas. E se o usuário estiver às vezes em uma rede insegura (ou estiver perto de Troy Hunt e seu abacaxi ) Em seguida, o usuário solicitará o link com o hábito antigo. Isso é http. Isso pode ser comprometido. O redirecionamento pode apontar para o link . Para um usuário comum, pareceria bastante legítimo. Mas o tráfego pode ser interceptado.

Portanto, temos dois requisitos concorrentes aqui: Ser amigável e ser seguro. Felizmente, existe um remédio chamado cabeçalho HSTS . Com isso, você pode ativar o redirecionamento. O navegador irá passar para o site seguro, mas graças ao cabeçalho HSTS também se lembra dele. Quando o usuário digita no whateversite.com sentado nessa rede insegura, o navegador irá para https imediatamente, sem passar pelo redirecionamento sobre http. A menos que você lide com dados muito confidenciais, acho que é um compromisso justo entre segurança e usabilidade para a maioria dos sites. (Quando eu instalei recentemente um aplicativo de tratamento de registros médicos, fui todos os https sem um redirecionamento). Infelizmente, o Internet Explorer não tem suporte para HSTS ( source ), portanto, se seu público-alvo estiver usando principalmente o IE e os dados é sensível você pode querer desabilitar redirecionamentos.

Portanto, se você não estiver segmentando usuários do IE, vá em frente e use o redirecionamento, mas também ative o cabeçalho HSTS.

    
por 28.01.2014 / 08:40
22

Não há nada de errado com isso e, de fato, é uma prática recomendada (para sites que devem ser veiculados por meio de uma conexão segura). Na verdade, o que você está fazendo é bem parecido com a configuração que estou usando:

<VirtualHost 10.2.3.40:80>
  ServerAdmin [email protected]
  ServerName secure.example.com
  RedirectMatch 301 (.*) https://secure.example.com$1
</VirtualHost>

# Insert 10.2.3.40:443 virtual host here :)

O código de status 301 indica um redirecionamento permanente , instruindo clientes capacitados a usar o URL seguro para futuras conexões (por exemplo, atualizar o favorito).

Se você estiver veiculando o site somente por TLS / SSL, recomendarei uma diretiva adicional para ativar a segurança de transporte restrita HTTP. (HSTS) no seu host virtual seguro :

<IfModule mod_headers.c>
  Header set Strict-Transport-Security "max-age=1234; includeSubdomains"
</IfModule>

Esse cabeçalho instrui os clientes capazes (a maioria deles atualmente, acredito) que devem usar somente HTTPS com o domínio fornecido ( secure.example.com , neste caso ) para o próximo 1234 segundos. A parte ; includeSubdomains é opcional e indica que a diretiva se aplica não apenas ao domínio atual, mas a qualquer sob ele (por exemplo, alpha.secure.example.com ). Observe que o cabeçalho HSTS é somente aceito pelos navegadores quando veiculado em uma conexão SSL / TLS!

Para testar a configuração do seu servidor em relação às melhores práticas atuais, um bom recurso gratuito é o serviço do Servidor SSL da Qualys ; Eu estaria com o objetivo de marcar pelo menos um A- (você não pode obter mais do que isso com o Apache 2.2, devido à falta de suporte para criptografia de curva elíptica).

    
por 28.01.2014 / 03:20
5

Uau! redirecionar HTTP para HTTPS é uma coisa muito boa e não consigo ver nenhuma desvantagem para isso.

Apenas certifique-se de que seus clientes tenham a CA correta para evitar avisos não amigáveis ao usuário sobre o certificado no navegador.

Além disso, a maneira como você configurou o Apache para redirecionar para HTTPS parece boa.

    
por 28.01.2014 / 01:35
5

Is it bad to redirect http to https?

Não, de jeito nenhum. Na verdade, é uma boa coisa para fazer!

Em redirecionamentos:

Poderia ser mais eficiente, eliminando completamente as reescritas . Aqui está minha configuração em uma situação semelhante ...

<VirtualHost *:80>
  ServerName domainname.com

  <IfModule mod_alias.c>
    Redirect permanent / https://domainname.com/
  </IfModule>
</VirtualHost>
    
por 28.01.2014 / 14:45
4

HTTPS não é exatamente infalível. Naturalmente, forçar o HTTPS normalmente é uma coisa boa. Isso impede que criminosos comuns façam algo ruim para seus usuários.

Mas lembre-se de verificar suas configurações de SSL, como a configuração SSLCiphers. Desativar coisas como criptografia RC4, o protocolo SSLv2 e SSLv3. Além disso, você deve descobrir se as bibliotecas do sistema de criptografia do seu sistema suportam TLS1.2 (que é a coisa que você quer ter;))

Ativar SSL, é uma coisa boa.

    
por 28.01.2014 / 08:43
3
Pessoalmente, sou a favor do uso de SSL para proteger conexões na Web, mas sinto que todas as outras respostas aqui perdidas são que nem todos os dispositivos e softwares capazes de uma conexão HTTP conseguirão use SSL, portanto, eu consideraria fornecer alguma maneira para os usuários evitá-lo, se não for suportado por eles. Também é possível que pessoas em alguns países onde a tecnologia de criptografia seja ilegal não terão permissão para acessar seu site. Eu consideraria adicionar uma página de destino não criptografada com um link para forçar a versão insegura do site, mas a menos que um usuário selecione especificamente fazer o que você disse e apenas encaminhá-los para a versão HTTPS.

    
por 28.01.2014 / 11:13
3

Veja alguns dos grandes problemas da pincelada:

  • MITM / SSLSTRIP : Esta é uma enorme advertência. Se você for veicular seu site por HTTPS, , desabilite o HTTP no site . Caso contrário, você deixará seus usuários abertos a vários ataques man-in-the-middle, incluindo o SSLSTRIP, que interceptará as solicitações e as servirá silenciosamente por meio de HTTP, inserindo seu próprio script de malware no fluxo. Se o usuário não perceber, eles pensarão que sua sessão está segura quando na verdade não é.

    • No entanto, o problema é que, se o site for um site público e você desativar o HTTP sem a menor cerimônia, poderá perder muitos visitantes. Provavelmente nem ocorrerão para tentar o HTTPS se o site não carregar com HTTP.
  • Se o seu site exigir um login seguro, toda a sessão do usuário deverá ser protegida. Não autentique por HTTPS e redirecione o usuário de volta para HTTP. Se você fizer isso, novamente, você estará deixando seus usuários vulneráveis a ataques MITM. A abordagem padrão para autenticação hoje em dia é autenticar uma vez e depois passar um token de autenticação para frente e para trás (em um cookie). Mas se você autenticar via HTTPS, em seguida, redirecionar para HTTP, então um man-in-the-middle pode interceptar esse cookie e usar o site como se fosse seu usuário autenticado, ignorando sua segurança.

  • Os problemas de "desempenho" com HTTPS são, para todos os fins práticos, limitados ao handshake envolvido na criação de uma nova conexão. Faça o que puder para minimizar a necessidade de várias conexões HTTPS a partir de um URL e você estará a quilômetros de distância. E isso é francamente verdadeiro, mesmo se você estiver veiculando seu conteúdo por HTTP. Se você ler o SPDY, perceberá que tudo o que ele faz é orientado para tentar servir todo o conteúdo de um único URL em uma única conexão. Sim, o uso do HTTPS afeta o armazenamento em cache. Mas quantos sites são apenas conteúdo estático e que pode ser armazenado em cache hoje em dia? É provável que você obtenha mais retorno para seu investimento usando o armazenamento em cache em seu servidor da Web para minimizar consultas de banco de dados redundantes recuperando dados inalterados repetidamente e evitando que caminhos de código caros sejam executados com mais frequência do que o necessário.

por 19.04.2014 / 12:43
1

Esta não é tecnicamente uma resposta à sua pergunta original, mas se você usar a extensão HTTPSEverywhere do Google Chrome (tenho certeza de que há extensões semelhantes em outros navegadores), a extensão redirecionará automaticamente sites com HTTP para o mesmo site com HTTPS Eu tenho usado por um tempo, e eu não tive nenhum problema (exceto talvez a lentidão, mas eu não testei isso). O HTTPSEverywhere pode ser alterado por certas regras no lado do servidor, mas como não fiz muito nessa área, não tenho certeza dos detalhes exatos.

Voltando à sua pergunta real, se você usar algo como HTTPSEverywhere, há ainda menos incentivo para usar somente HTTP, embora eu imagine que seja difícil configurar regras corretas para quando você precisar delas.

    
por 28.01.2014 / 05:27
1

a única desvantagem técnica para HTTPS sobre HTTP é que é computacionalmente mais caro processar solicitações HTTPS do que HTTP simples

No entanto, como a maioria dos servidores modernos tem CPU de alta potência, esse impacto é geralmente insignificante, a menos que você esteja em níveis extremamente altos de tráfego, quando provavelmente usará balanceadores de carga de qualquer maneira

Com o advento de protocolos como o SPDY, que exigem SSL / TLS para funcionar, isso realmente neutraliza a sobrecarga computacional mencionada acima, dando significativas melhorias de desempenho em relação a várias solicitações e obtendo ativos para o cliente mais rapidamente.

    
por 29.01.2014 / 12:55
1

É muito bom redirecionar para https, mas eu li também depende de como você organiza o redirecionamento.

Criando um servidor virtual dedicado para redirecionar as solicitações HTTP recebidas para sua conexão https, conforme sugerido na resposta em segurança .stackexchange.com parece muito inteligente e irá fechar algumas ameaças de segurança adicionais. Uma configuração no Apache seria algo como isto:

# Virtual host for rerouting
<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / https://www.example.com/
</VirtualHost>

# Virtual host for secure hosting on https
<VirtualHost *:443>
    ServerName www.example.com
    SSLEngine on
    Header set Strict-Transport-Security "max-age=8640000;includeSubdomains"

    ...site settings...

</VirtualHost>
    
por 05.11.2015 / 10:39