Como migrar um site WordPress para HTTPS?

Está na hora de encriptar o seu blog em WordPress. Já tem um certificado, está pronto a avançar, mas infelizmente mudar um blog WordPress de HTTP para HTTPS não é uma tarefa fácil.

Siga estes passos para o fazer sem grandes dificuldades.

A web está a mudar. Dantes apenas sites e-commerce e bancos usavam HTTPS, hoje em dia com o que sabemos sobre espionagem da NSA graças ao Snowden e com o acesso massificado por redes Wi-Fi pouco seguras passou a ser um dever fornecer sites por HTTPS, não apenas por questões de segurança mas também de privacidade.

No entanto não basta comprar um certificado SSL, instalar o mesmo e mudar o endereço do blog para HTTPS. É necessário mudar os links para os ficheiros Javascript e CSS caso não estejam a ser usados caminhos relativos e mudar os caminhos das imagens nos posts assim como outro conteúdo, caso contrário o browser vai apresentar um erro de conteúdo misto.

Se sabe o que está a fazer passe para o fim do artigo, senão continue a ler.

O WordPress guarda o caminho completo da imagem na base de dados

Ao enviar uma imagem pelo WordPress para o servidor ou ao incluir uma imagem da galeria ao criar um novo post o WordPress coloca o caminho completo da imagem na base de dados. Em vez de /imagens/foto.jpg guarda http://www.dicasblowx.com.br/imagens/foto.jpg.

Ao mudar o seu blog para HTTPS estes dados vão-se manter na base de dados como HTTP e vamos ter um aviso de conteúdo misto e as imagens podem não aparecer. O mesmo acontece com caminhos para vídeos do Youtube ou Vimeo que eram incluídos antigamente por HTTP apenas.

O que é o aviso de conteúdo misto e porque os dados são bloqueados?

A ideia do HTTPS é garantir que a página é enviada encriptada e sem alterações entre o servidor e o browser. Desta forma um browser não pode permitir a apresentação de conteúdo sem encriptação na mesma página, uma vez que não está garantida a integridade e segurança dos dados.

Assim é necessário alterar os endereços de todos os recursos que temos no blog de HTTP para HTTPS, isto falando de imagens, vídeos, CSS, JS e afins.

O WordPress não permite esta alteração de forma simples, é necessário correr queries para fazer a alteração.

Alterar os endereços na base de dados

Primeiro vamos fazer um backup da base de dados caso exista algum erro a efectuar a alteração.

Depois com o phpMyAdmin ou outra ferramenta de acesso ao MySQL / MariaDB vamos correr as seguintes querys, mudando o endereço para o do seu blog:

UPDATE wp_posts SET guid = REPLACE(guid, ‘http://www.dicasblowx.com.br’,‘https://www.dicasblowx.com.br’);

UPDATE wp_posts SET post_content = replace(post_content, ‘http://www.dicasblowx.com.br’, ‘https://www.dicasblowx.com.br’);

UPDATE wp_postmeta SET meta_value = replace(meta_value, ‘http://www.dicasblowx.com.br’, https://www.dicasblowx.com.br’);

Na maioria dos casos estes comandos bastam. No meu caso tenho ainda vídeos do Youtube que foram incluídos no blog em 2008, com o link directo com HTTP. Assim foi preciso correr a seguinte query:

UPDATE wp_posts SET post_content = replace(post_content, ‘http://www.youtube.com’, ‘https://www.youtube.com’);

Agora o seu blog irá ficar a funcionar sem problemas com HTTPS.

Related Posts Plugin for WordPress, Blogger...