O protocolo HTTPS é comumente usado para criptografar dados confidenciais que estão sendo enviados em nosso site. Este post descreve algumas dicas úteis com base em nossas próprias experiências que podem ser úteis se você estiver pensando em mudar para HTTPS/SSL.
Mover seu site WordPress para suportar conexões HTTPS com certificados SSL ficou muito mais fácil a partir do WordPress 5.7. Nessa versão, a equipe do WordPress adicionou um novo recurso ao Site Health que verifica se um site é executado em um pacote de hospedagem compatível com HTTPS. Se isso acontecer, o recurso oferece uma opção de um clique para mover seu site para HTTPS . Ele até atualiza os links no banco de dados para você e evita que avisos de conteúdo misto aconteçam. Então, ative esse certificado SSL para o seu site e aproveite!
Índice
- Um pouco de história
- Como faço para trocar?
- Como isso influencia meus rankings?
- Configurando HTTPS e SSL em seu servidor
- Grampeamento OCSP
- Apache
- Nginx
- Cabeçalho de segurança de transporte estrita
- Teste
- URLs de redirecionamento
- Conclusão
Um pouco de história
Em 2014, o HTTPS se tornou um assunto importante depois que o bug Heartbleed se tornou público. Esse bug permitia que pessoas mal intencionadas ouvissem o tráfego sendo transferido por SSL/TLS. Também lhes deu a capacidade de sequestrar e/ou ler os dados. Felizmente, esse bug foi corrigido rapidamente após sua descoberta. Este incidente foi um alerta de que criptografar corretamente as informações do usuário pela Internet é uma necessidade e não deve ser uma coisa opcional.
Para enfatizar a importância de criptografar dados confidenciais, o Google Chrome (desde janeiro de 2017) exibe um aviso claro ao lado da barra de endereço sempre que você visita um site que não criptografa dados confidenciais, como formulários.
Como faço para trocar?
Como é importante que seus dados estejam seguros, tomamos medidas para garantir que tenhamos certificados SSL em nossos próprios sites. Se você decidir mudar (você realmente deveria!), há algumas coisas que você precisa levar em consideração para garantir que seu site funcione totalmente como pretendido quando terminar a implementação.
- Você precisa alterar todos os seus links internos. Certifique-se de revisar seu tema e alterar as referências para arquivos CSS, imagens e JavaScript. Além disso, você pode alterar todos os seus links para começar, em
//
vez do https://
que resultará em URLs relativos ao protocolo.
- Certifique-se de que seu CDN também suporte SSL. Recomendamos o uso do bunny.net, que permite configurar facilmente o SSL em seu subdomínio CDN.
- Existem vários níveis de SSL que você pode escolher, cada um com seus próprios prós e contras. Você encontrará mais informações sobre isso mais adiante.
- Certifique-se de ter um link canônico presente na
<head>
seção do seu site para redirecionar adequadamente todo o tráfego proveniente http://
de https://
.
O Google também publicou um guia prático sobre como migrar para HTTPS sem afetar muito sua classificação, que pode ser encontrado aqui.
Como isso influencia meus rankings?
Como dito na seção anterior, mudar de HTTP para HTTPS pode influenciar um pouco suas classificações se você não planejar adequadamente. No entanto, depois de mudar para HTTPS, seus rankings realmente melhorarão com o tempo. O Google anunciou em 2014 que ter um certificado SSL será considerado um fator de classificação positivo, então vale a pena o investimento.
Para garantir que o Googlebot possa reindexar seu site mais rapidamente após a mudança, migre para https://
durante os horários de pouco tráfego. Dessa forma, o Googlebot pode usar mais recursos do seu servidor. Basta levar em conta que um site de tamanho médio pode demorar um pouco para recuperar o ranking. Tem um mapa do site? Assim, o Googlebot poderá recalcular e reindexar seu site ainda mais rápido.
Configurando HTTPS e SSL em seu servidor
De um modo geral, os provedores de hospedagem têm um serviço que permite habilitar HTTPS/pedir um certificado. Existem alguns tipos de certificados que você pode escolher, que diferem de algumas maneiras. Cada variante também tem seu próprio preço, portanto, antes de comprar um, certifique-se de escolher um certificado que atenda às suas necessidades e orçamento!
Se você está um pouco carente de dinheiro e conhecedor de tecnologia, dê uma olhada no Let’s Encrypt para adquirir um certificado gratuito (!).
Se você executa e gerencia seu próprio servidor web, há algumas coisas que você terá que habilitar na configuração do servidor antes de poder usar certificados SSL. Este tutorial explica quais etapas devem ser seguidas para obter um certificado em execução em seu servidor.
Grampeamento OCSP
Ter que verificar a validade de um certificado SSL pode resultar em um pequeno impacto na velocidade de carregamento. Para superar isso, você pode usar o grampeamento OCSP. O grampeamento OCSP é um recurso que permite que o servidor baixe uma cópia da resposta do fornecedor do certificado ao verificar o certificado SSL. Isso significa que, uma vez que um navegador se conecta ao servidor, ele verifica a validade do certificado com base na cópia no servidor, em vez de consultar o próprio fornecedor do certificado, resultando em uma melhoria significativa no desempenho.
Apache
Antes de habilitar o grampeamento OCSP em seu servidor Apache, verifique se você está executando a versão 2.3.3+ do Apache executando o comando apache2 -v
(ou httpd -v
) em seu servidor. Versões inferiores do Apache não suportam esse recurso .
Se você passou pelo processo de configuração de HTTPS em seu servidor conforme descrito na seção “Configurando HTTPS e SSL em seu servidor”, você deve ter entrado em contato com uma configuração de VirtualHost feita especificamente para uso com HTTPS/SSL.
Nesse arquivo, siga os seguintes passos:
- Dentro da seção
<VirtualHost></VirtualHost>
, você deve adicionar SSLUseStapling on
.
- Logo acima da seção
<VirtualHost></VirtualHost>
, adicione SSLStaplingCache shmcb:/tmp/stapling_cache(128000)
- Verifique se a configuração ainda é válida executando
apachectl -t
. Nesse caso, recarregue o Apache executando service apache2 reload
.
Nginx
O Nginx também suporta grampeamento OCSP. Antes de editar a configuração do servidor, verifique se você está executando a versão 1.3.7+ do Nginx executando o comando nginx -v
em seu servidor. Versões inferiores do Nginx não suportam esse recurso.
Se você passou pelo processo de configuração de HTTPS em seu servidor conforme descrito na seção “Configurando HTTPS e SSL em seu servidor”, você deve ter entrado em contato com uma configuração Nginx feita especificamente para uso com HTTPS/SSL.
Nesse arquivo, adicione as seguintes linhas na seção server {}
:
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/ssl/private/ca-certs.pem;
A última linha faz referência a um arquivo que contém uma lista de certificados de CA confiáveis. Este arquivo é usado para verificar certificados de cliente ao usar OCSP.
Depois de adicionar essas linhas ao arquivo, verifique se a configuração ainda é válida executando service nginx configtest
. Nesse caso, recarregue o Nginx executando service nginx reload
.
Cabeçalho de segurança de transporte estrito
O Strict Transport Security Header (HSTS) é outro recurso útil que basicamente obriga os navegadores a usar a solicitação HTTPS em vez do equivalente HTTP. Ativar esse recurso é relativamente indolor.
Apache
Se você estiver executando o Apache, primeiro ative o módulo Apache Headers executando a2enmod headers
. Depois disso, basta adicionar a seguinte linha à configuração do VirtualHost (na seção <VirtualHost></VirtualHost>
) que você configurou anteriormente para HTTPS:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Recarregue o serviço Apache e pronto!
Nginx
O Nginx requer que você adicione a seguinte linha na seção server{}
do arquivo de configuração do servidor:
add_header Strict-Transport-Security max-age=31536000;
Teste
Para ver se o seu certificado SSL está funcionando corretamente, vá até SSL Labs , preencha seu nome de domínio e veja que tipo de pontuação você obtém.
URLs de redirecionamento
Para garantir que as solicitações sejam redirecionadas corretamente para a URL HTTPS, você precisa adicionar uma linha extra à sua configuração. Dessa forma, o tráfego que tentar visitar seu site por HTTP, será redirecionado automaticamente para HTTPS.
Apache
Em sua configuração padrão do VirtualHost (ou seja, aquela que é usada para solicitações HTTP), adicione o seguinte para garantir que as URLs sejam redirecionadas corretamente:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Assim como nas outras mudanças que fizemos antes, não se esqueça de recarregar o Apache!
Nginx
No Nginx, altere o arquivo de configuração padrão que foi usado para solicitações HTTP e altere-o da seguinte forma:
server {
listen 80;
server_name your-site.com www.your-site.com;
return 301 https://your-site.com$request_uri;
}
Não se esqueça de recarregar o Nginx antes de testar essas alterações.
Conclusão
“Devo mudar para HTTPS?” Resposta curta: Sim. O uso de HTTPS garante que as informações privadas (do usuário) sejam enviadas pela internet de maneira mais segura. Especialmente se você estiver lidando com transações monetárias, o HTTPS é obrigatório.
O tipo de certificado que você vai usar depende do seu caso de uso e orçamento específicos. Certifique-se de pesquisar adequadamente suas opções com antecedência.