SSL grátis para qualquer site WordPress
Publicados: 2022-03-10Se você possui um site de comércio eletrônico, o SSL é obrigatório para processar cartões de crédito com segurança. Mas mesmo que você não esteja processando pagamentos, você ainda deve considerar seriamente o HTTP seguro (ou HTTPS), especialmente agora que vou mostrar como configurá-lo rapidamente, de graça. Vamos começar.
O que é SSL e por que devo me importar?
Resumindo, SSL é o “S” em HTTPS. Ele adiciona uma camada de criptografia ao HTTP que garante que o destinatário seja realmente quem afirma ser e que apenas destinatários autorizados possam descriptografar a mensagem para ver seu conteúdo.
Leitura adicional no SmashingMag:
- HTTPS em todos os lugares com Nginx, verniz e Apache
- Como emitir um novo certificado SSL com uma chave SSL antiga
- Preparando-se para HTTP/2: um guia para web designers
Informações confidenciais, como números de cartão de crédito – basicamente, qualquer coisa privada – devem sempre ser veiculadas via HTTPS. No entanto, há uma tendência crescente de servir todo o conteúdo via HTTPS, como vemos em sites de notícias, blogs, mecanismos de busca e sites da maioria das marcas tradicionais. Portanto, mesmo que seu site não esteja processando pagamentos, há bons motivos para considerar o HTTPS, alguns dos quais estão listados aqui:
- Credibilidade . Mesmo o público não técnico associa o pequeno cadeado verde na barra de endereços do navegador com confiança e confiabilidade.
- Proteção por senha . Talvez seu site hospede apenas vídeos de gatinhos. Mas se os usuários estiverem acessando seu site via Wi-Fi com uma senha que eles também usam para serviços bancários on-line, você está potencialmente facilitando uma grave violação de segurança ao transmitir essas credenciais publicamente.
- À prova de futuro . Muitos sites ainda são servidos via HTTP, mas há uma tendência inegável em direção ao HTTPS, e isso só aumentará à medida que os usuários se tornarem cada vez mais informados sobre segurança na web. Esteja do lado certo da história.
- SEO . O Google anunciou oficialmente que o HTTPS é usado como um sinal de classificação. Em outras palavras, o Google está recompensando os sites HTTPS aumentando suas classificações nos resultados de pesquisa.
Um argumento comum contra o HTTPS é que ele reduz o desempenho. É verdade que o processo de criptografar e descriptografar custa milissegundos adicionais, mas na maioria das situações é insignificante, como evidenciado pelo fato de que empresas preocupadas com o desempenho, como Google e Facebook, veiculam todo o seu conteúdo via HTTPS. E, é verdade, o HTTPS pode agravar os problemas de desempenho existentes, como muitos arquivos CSS sendo servidos individualmente, mas isso é mitigado seguindo as práticas recomendadas básicas de desempenho. E com a adoção do HTTP/2, o custo de desempenho do HTTPS é ainda menor. O resultado final é que a redução no desempenho é um impedimento significativo apenas se o seu site estiver hiperotimizado ou com desempenho tão baixo que cada milissegundo é importante.
Como configurar HTTPS gratuitamente
O primeiro passo para configurar o HTTPS gratuitamente é se inscrever em um serviço de DNS na nuvem. Se você não tem ideia do que é DNS, recomendo que você reserve um minuto para aprender antes de continuar. O delicioso Como funciona o DNS faz um ótimo trabalho ao transformá-lo em um desenho animado. Caso contrário, simplesmente saiba que o DNS é o sistema pelo qual nomes de domínio como example.com
(que os humanos entendem) são vinculados a endereços IP como 104.28.2.167
(que os computadores entendem). Você tem muitas opções, mas sou fã do CloudFlare porque é muito rápido de configurar, o painel é intuitivo e um plano gratuito está disponível com muitos recursos poderosos.
Configurando o CloudFlare
Depois de se registrar para uma conta CloudFlare, você será guiado por um assistente fácil para configurar seu primeiro site, que terminará com instruções sobre como fazer login em seu registrador de domínio e apontar os servidores de nomes para CloudFlare. A mudança levará algum tempo para se propagar, mas quando estiver concluída, CloudFlare hospedará os registros DNS do seu site. Em seguida, ative o recurso “SSL flexível” do CloudFlare.

Escolher a configuração “SSL flexível” é importante porque não requer que você compre e instale seu próprio certificado SSL no servidor do seu site. Aqui está um diagrama do que está acontecendo.

Como você pode ver, CloudFlare está atuando como intermediário para proteger o tráfego entre seu site e o cliente. Se este fosse um site HTML estático, agora você poderia se conectar a ele via HTTPS ( https://yourdomain.com
). O WordPress, no entanto, requer configuração adicional para funcionar com o protocolo modificado.
Reconfigurando o WordPress de HTTP para HTTPS
Primeiro, você precisará atualizar as configurações de “Endereço do WordPress” e “Endereço do site” no painel, em “Configurações” → “Geral”. Ao fazer isso, você terá que fazer login no painel novamente.

Proceda com cautela. Se você atualizar essas configurações prematuramente, corre o risco de se bloquear. Por exemplo, se o site ainda não estiver configurado corretamente para HTTPS e as configurações estiverem atualizadas, você poderá causar um loop de redirecionamento que interromperá o site e impedirá que você acesse o painel.

Nesse ponto, você poderá visitar a página inicial do site via HTTPS. No entanto, os links da página ainda apontarão para os URLs HTTP. O WordPress armazena links para páginas e imagens como URLs absolutas, o que significa que a URL completa, incluindo o protocolo, é salva no banco de dados. Para garantir que todo o site seja consistentemente servido via HTTPS (sem emitir avisos sobre conteúdo misto), você precisará atualizar seu conteúdo legado.
Atualizando conteúdo legado
Em um site pequeno com apenas algumas páginas, a opção mais rápida pode ser simplesmente atualizar manualmente os URLs editando as páginas existentes na interface de administração. Se o site for grande ou tiver um blog altamente ativo, a edição manual provavelmente não será prática. Se o seu host fornece phpMyAdmin ou alguma outra interface para executar consultas MySQL, você pode fazer isso facilmente com algumas consultas MySQL na guia SQL. Como alternativa, você pode seguir as instruções do The Customize Windows para fazê-lo na linha de comando.
Correndo o risco de afirmar o óbvio, substitua yourdomain.com
nas consultas a seguir pelo seu domínio real . Além disso, se você personalizou o prefixo da tabela do WordPress, substitua wp_
pelo prefixo relevante.
Primeiro, atualize os URLs dos posts e páginas.
UPDATE wp_posts SET guid = replace(guid, 'https://yourdomain.com','https://yourdomain.com');
[ATUALIZAÇÃO: Conforme discutido nos comentários, o campo guid não deve ser editado.]
Atualize a tabela wp_postmeta
também.
UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://yourdomain.com','https://yourdomain.com');
Por fim, atualize o conteúdo real das postagens ou páginas. Isso atualizará todos os backlinks para HTTPS.
UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://yourdomain.com', 'https://yourdomain.com');
Depois de executar essas consultas, você desejará atualizar seus permalinks acessando “Configurações” → “Permalinks”. Simplesmente altere a configuração de volta para o padrão e, em seguida, defina-a de volta para qualquer configuração que você estava usando originalmente.
Agora, você deve poder clicar nos menus e links em todo o site, e o protocolo deve permanecer HTTPS.
Solução de problemas de avisos de conteúdo misto
Dependendo do tema e dos plugins em uso, você pode receber um aviso na barra de endereço informando que determinados recursos não estão sendo servidos com segurança. Se os erros estiverem associados a ativos adicionados por seu próprio tema ou plug-in personalizado, certifique-se de enfileirar corretamente os arquivos JavaScript e CSS e não os URLs de código permanente que começam com HTTP
. A maioria dos navegadores permite expandir o aviso para mostrar as solicitações específicas que estão causando o erro. Você também pode experimentar um plug-in gratuito, como SSL Insecure Content Fixer, que tentará corrigir plug-ins de terceiros que não conseguiram fazer isso.
A essa altura, você deve ver o cadeado verde na barra de URL ao visitar seu site. Se você não estiver usando um plugin de comércio eletrônico como WooCommerce ou WP eCommerce, está feito! Se estiver, há um último passo importante.
Obtendo SSL flexível para trabalhar com plug-ins de comércio eletrônico
O WordPress tem uma função central chamada is_SSL()
na qual os plugins dependem para determinar se o tráfego é criptografado com SSL. Com o método acima sozinho, esta função retornará false
porque a criptografia é apenas entre CloudFlare e o cliente. O tráfego com o qual o PHP interage não é criptografado, então o super global que essa função verifica (ou seja, $_SERVER['HTTPS']
) não seria útil. Para nosso propósito, a variável relevante é $_SERVER['HTTP_X_FORWARDED_PROTO']
, que, no momento da escrita, o WordPress não reconhece. O pedido para mudar isso é de longa data, mas ainda não foi resolvido.
Felizmente , um plugin gratuito irá corrigir isso para você imediatamente, CloudFlare Flexible SSL. Basta instalar o plugin e ativá-lo. Lembre-se que esta técnica não adiciona mais segurança . O tráfego entre CloudFlare e o servidor do seu site ainda não é criptografado e, portanto, ainda vulnerável a sniffing.
SSL flexível não é SSL completo
A iniciativa “Universal SSL” da CloudFlare é uma tentativa interessante de tornar a Internet mais segura, mas não é isenta de controvérsias. A principal preocupação é que o SSL flexível não criptografa a segunda metade da jornada do tráfego (para o seu servidor), mas o navegador ainda mostra o mesmo cadeado verde que associamos ao SSL completo . CloudFlare oferece a seguinte justificativa em seu blog:
Ter criptografia de ponta pode não parecer importante para um blog pequeno, mas é fundamental para o avanço do futuro criptografado por padrão da Internet. Cada byte, por mais mundano que pareça, que flui criptografado pela Internet torna mais difícil para aqueles que desejam interceptar, estrangular ou censurar a web. Em outras palavras, garantir que seu blog pessoal esteja disponível por HTTPS torna mais provável que uma organização de direitos humanos ou serviço de mídia social ou jornalista independente esteja acessível em todo o mundo. Juntos podemos fazer grandes coisas.
Para melhor ou pior, o SSL flexível está aqui, e a Internet terá que se adaptar. Enquanto isso, o ônus está nos proprietários de sites para serem educados e tomarem decisões responsáveis.
Redirecionando solicitações HTTP para HTTPS
Habilitar um site para ser executado em HTTPS não garante que as solicitações realmente usem o protocolo. Se o seu site já existe há algum tempo, os usuários podem já tê-lo marcado com HTTP. Você pode redirecionar todas as solicitações HTTP para o novo protocolo adicionando o seguinte snippet na parte superior do arquivo .htaccess
na raiz do seu site. Se o arquivo não existir, você poderá adicioná-lo com segurança.
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://yourdomain.com/$1 [R=301,L] </IfModule>
Se um arquivo .htaccess
já existir, tome cuidado para não alterar nada entre as linhas # BEGIN WordPress
e # END WordPress
nesse arquivo. Essas linhas são gerenciadas pelo WordPress e, sempre que os permalinks são atualizados, o conteúdo dessa seção é substituído.
Parabéns
Ao atualizar seu site para HTTPS, você melhorou seu site, protegeu os usuários e participou do avanço da Internet. E não lhe custou nada!