Você gostaria de aprender como mover seu site WordPress de HTTP para HTTPS? Neste tutorial, mostraremos todas as etapas necessárias para mover o site do WordPress para HTTPS usando o Ubuntu Linux.

• Versão do Ubuntu: 18.04

Lista de Hardware:

A seção a seguir apresenta a lista de equipamentos usados para criar este tutorial do WordPress.

Cada peça de hardware listada acima pode ser encontrada no site da Amazon.

WordPress Playlist:

Nesta página, oferecemos acesso rápido a uma lista de vídeos relacionados à instalação do WordPress.

Não se esqueça de se inscrever em nosso canal do youtube chamado FKIT.

Tutoriais Relacionados ao WordPress:

Nesta página, oferecemos acesso rápido a uma lista de tutoriais relacionados à instalação do WordPress.

Tutorial - Conta GoDaddy

Primeiro, você precisa acessar o GODADDY e crie uma conta.

Essa conta será usada para criar seu certificado HTTPS.

Tutorial - Criação de Certificados HTTPS

No console do Linux, use o seguinte comando para instalar os pacotes necessários.

# apt-get update
# apt-get install openssl

Use o seguinte comando para gerar seu arquivo KEY e seu arquivo CSR.

# mkdir -p /downloads/certificate
# cd /downloads/certificate
# openssl req -new -newkey rsa:2048 -nodes -keyout techexpert.key -out techexpert.csr

O sistema fará algumas perguntas para atender sua solicitação de certificado.

• Nome do país - digite o código de 2 letras para o seu país
• Nome do Estado ou Província - Digite o nome do seu estado ou província.
• Nome da localidade - digite o nome da sua cidade
• Nome da organização - digite o nome da sua organização ou o seu nome pessoal.
• Nome da Unidade Organizacional - Opcional
• Nome comum - Digite o nome do host do seu site
• Endereço de E-mail - Opcional
• Uma senha de desafio - Opcional.
• Um nome de empresa opcional - opcional.

Em nosso exemplo, estamos criando uma solicitação de certificado para o website techexpert.tips.

Generating a 2048 bit RSA private key
...................+++
...................+++
writing new private key to 'techexpert.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:Rio de Janeiro
Locality Name (eg, city) []:Rio de Janeiro
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Jonas Smith
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:techexpert.tips
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

O CSR contém sua solicitação de assinatura de certificado e será enviado para a GoDaddy para criar seu certificado público.

Aqui está o conteúdo do arquivo CSR:

-----BEGIN CERTIFICATE REQUEST-----
MIICtDCCAZwCAQAwbzELMAkGA1UEBhMCQlIxFzAVBgNVBAgMDlJpbyBkZSBKYW5l
aXJvMRcwFQYDVQQHDA5SaW8gZGUgSmFuZWlybzEUMBIGA1UECgwLSm9uYXMgU21p
dGgxGDAWBgNVBAMMD3RlY2hleHBlcnQudGlwczCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBALAZgXHiRxCZgLmAl+2eNmFY1VmQgvvBIxMW0V8hjfs81tU1
4nXUei51fwdai63ypc7EG8cTyhS3Os7/3npwJU2x1j55dlVXBSGN5JFP3Afa9SHe
9XDqaLRNHLUpkkaj6EV5RLvMZvT8jBUyh+wQTesAzWz1Gg07MfpD9Ls6JcUfg6GN
s5Fy/SYEEONtSAgH48+hJ0KP3zIeNk2/JUS9T3FktBnEN8Uwmv2U0A5HQAg5oAuR
doy7XMLn4bVnbH5b3FIjgkx6CIqgeEj9e3cDeULJPzUYZzdGuaWKCFllWy2vQUrh
ei1wl7lguwGfXEi6TJStackcZHPwyYLbpKFhEssCAwEAAaAAMA0GCSqGSIb3DQEB
CwUAA4IBAQCBKsz7z95s251RaZ/x+URiIvtMFl+JheLt8PSJB8CC+SltA245kYg4
CbWc5blXckwcM+2LQ0Dd4YcWfKGunlee/Agju74gbqybV77cpA14w8wRK3tasv24
8/VD+94WvMME+WlBpuTPGIEqgAIt653Fn/E+MLD42ICRGkL+HZITAYltn+4uNtO7
S35jJ5OIVJ5WdTLWfrakCqEtPXVOpyYalwVF5MrmYzJhfeIGuLQge62uP+EFHrWI
W3+ATnPFpq0/slsxu24s00GBkj56cO2JNnmhVpSjQkmd2Jmsz42+Myh/dGTrFnd5
fQcXU9D/+qELbzFtWyVeU1SK0mufavGw
-----END CERTIFICATE REQUEST-----

O arquivo KEY contém sua chave privada do Certificado e deve ser mantido em um local seguro o tempo todo.

Aqui está o conteúdo do arquivo KEY:

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCwGYFx4kcQmYC5
gJftnjZhWNVZkIL7wSMTFtFfIY37PNbVNeJ11HoudX8HWout8qXOxBvHE8oUtzrO
/956cCVNsdY+eXZVVwUhjeSRT9wH2vUh3vVw6mi0TRy1KZJGo+hFeUS7zGb0/IwV
MofsEE3rAM1s9RoNOzH6Q/S7OiXFH4OhjbORcv0mBBDjbUgIB+PPoSdCj98yHjZN
vyVEvU9xZLQZxDfFMJr9lNAOR0AIOaALkXaMu1zC5+G1Z2x+W9xSI4JMegiKoHhI
/Xt3A3lCyT81GGc3RrmlighZZVstr0FK4XotcJe5YLsBn1xIukyUrWnJHGRz8MmC
26ShYRLLAgMBAAECggEAdpK19ljGQQcbBczwf67oLuQBxCzqBVomo9PZZpTRZTmx
7h46Pdyz6FR1FB6DrryTqIWjrohEqW42yuq+gvLAK3BzMd3XL99INS+1l6KOJTvp
ksTtvvoXRlAl5FX5iFcVLrJY9ZrMOGlUaXF81BamYHZJ2/OtdvtEy562Str8U52m
GTkgfpWnaLc66T05zViNwiAb5yg0v9Xb9YOEgLY8VdqYppUnJNzYs7utiDGbOjPa
OCZ5oLTl1b9l6sNw7RhhOmq/jPOur4Keg124fyleULi2Uln52waLWeI8fWI/AHmP
UQQkC3athEOKr0f1Zk9ZRxYJq5FYGPTElqQdbltEAQKBgQDiqSp4XM0tfFJwZIkH
ooEcPw+to4T0333K4mipx+YxlELCHvIXW2xIxlejyhgnVIQWX6qS0F7VUGnVuSKz
hB0zfcd89MYcqGyQSEdc9kZB+Twb9Hzd3fTXu7hKjXoz9+UKfcOXfQdILGnDqyG8
zCF//aNocRvxaO9E1cZ+1irlcQKBgQDG5OZUr8kMYI8Tl0GcmWZSFZfMYBYT3CAq
YPHmNQcHhENGz6v9jBZjkeZJBLMRZLlRWjcrWhKbEEHsjZJYiJP4u2n6n57Il9h9
OVqfK7RR3k1r9bMKzhYRnu1FsEPpMKKUrLPDChthxduXEPPZgoKGSYmhLAiYqyPg
USOyZzFt+wKBgQCmfjSgLSrZ2pSD0pWFciz8nqXZml+zr+cq/Jx8+kVw7cML7MdP
uOwVmPwPaAfN/Br6hFM7fKvsbSEQyOlgjA8XH7FFbFeJ/X2hjjY9Zvm8xGMO9cwy
/TM4tL9uo/W77r/jsPXXdRPARD98Z1xk3l1NMvaxZURtU/NN0On5iUABQQKBgGIu
FiER0R3iAF68WLAT7TVx4UgK2nsdO2eQCXkJDhpAyPEIjK8RWu/10oaS4k4guXYW
IYut3+dZpCFAVVCMwvaSlSMZbkk4464VBM3zxgRvxyoW1DXuO2ihWiD/fNZ8opTf
l7EcqR2fjOFKhgUF7qaZYG4GDYxHVuNhSkzDsdvHAoGBAIfDk7fLsG/BYROxJpzN
b1CoG8DE+DKYTWwMWW45rDF0ImbC6H3fg876CeZ3YKGWqt9qkha7gnGGVRRufP15
O7ZEXebZXeDYafXSNcnqSe7FSNtVr1eFlTWmL8OiWQuaqxjs/VogdWfhkEGPISVF
AOM3I6XSGx4NxW2RgYmvQZ4O
-----END PRIVATE KEY-----

Volte para o WEBSITE da GODADDY e compre o certificado SSL.

Você será solicitado a colar o conteúdo do arquivo CSR no site.

GoDaddy Generate Certificate

Após 10 minutos, o GoDaddy concluirá a criação do seu certificado e permitirá que você baixe um arquivo ZIP.

Em nosso exemplo, o arquivo ZIP foi denominado: techexpert.tips.zip

GoDaddy Certificate Download

Após 10 minutos, o GoDaddy concluirá uma criação de seu certificado e permitirá que você baixe um arquivo ZIP.

Em nosso exemplo, o arquivo ZIP foi denominado: techexpert.tips.zip

# cd /downloads/certificate
# unzip techexpert.tips.zip

Archive: techexpert.tips.zip
inflating: gd_bundle-g2-g1.crt
inflating: 1c9ad5b95b2ac0fb.crt

Vamos listar os arquivos disponíveis no diretório do certificado.

• 1c9ad5b95b2ac0fb.crt
• gd_bundle-g2-g1.crt
• techexpert.csr
• techexpert.key
• techexpert.tips.zip

Você deve ter arquivos semelhantes dentro do seu diretório de certificados.

Opcional. Se você quiser olhar dentro dos arquivos de certificado enviados pelo Godady, use os seguintes comandos.

# openssl x509 -in gd_bundle-g2-g1.crt -text -noout
# openssl x509 -in ab0562011b4bb0c7.crt -text -noout

Não se esqueça de alterar os nomes dos arquivos para refletir seu ambiente.

Tutorial - Redirecionar HTTP para HTTPS no Apache

Ative o módulo Apache SSL e o módulo Apache REWRITE.

# a2enmod rewrite
# a2enmod ssl
# service apache2 restart

Edite seu arquivo de configuração Apache VIRTUALHOST para também oferecer seu site via HTTPS:

# vi /etc/apache2/sites-available/techexpert.conf

Tenha em mente que o nome e a localização do seu arquivo VIRTUALHOST podem não ser os meus.

Aqui está o nosso arquivo original do site, antes da nossa configuração.

<VirtualHost *:80>
ServerAdmin nobody@care.com
DocumentRoot /websites/techexpert/www
ServerName techexpert.tips

<Directory /websites/techexpert/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

ErrorLog /websites/techexpert/logs/error.log
CustomLog /websites/techexpert/logs/access.log combined
LogLevel error
</VirtualHost>

Aqui está o novo arquivo com o HTTPS VIRTUALHOST ativado.

Este arquivo também foi configurado para redirecionar qualquer conexão HTTP para o site HTTPS.

<VirtualHost *:80>
ServerAdmin nobody@care.com
ServerName techexpert.tips
Redirect permanent / https://techexpert.tips/
</virtualhost>

<VirtualHost *:443>
ServerAdmin nobody@care.com
DocumentRoot /websites/techexpert/www
ServerName techexpert.tips

<Directory /websites/techexpert/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
SSLCertificateFile /downloads/certificate/1c9ad5b95b2ac0fb.crt
SSLCertificateKeyFile /downloads/certificate/techexpert.key
SSLCertificateChainFile /downloads/certificate/gd_bundle-g2-g1.crt

ErrorLog /websites/techexpert/logs/error.log
CustomLog /websites/techexpert/logs/access.log combined
LogLevel error
</VirtualHost>

Defina a permissão de arquivo correta em todos os arquivos de certificado e chave.

# chown www-data.www-data /downloads/certificate/* -R

Você também deve reiniciar o apache manualmente e verificar o status do serviço.

# service apache2 stop
# service apache2 start
# service apache2 status

Aqui está um exemplo da saída de status do serviço Apache.

● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Mon 2018-04-23 00:02:09 -03; 1min 4s ago

Tutorial - Configurar o WordPress para HTTPS

Agora, precisamos configurar o WordPress para usar o HTTPS.

Abra seu navegador e acesse o Painel do WordPress.

No painel do WordPress, acesse o menu Configurações e selecione a opção Geral.

Wordpress Settings General

Altere o endereço do WordPress (URL) e a configuração do endereço do site (URL) de HTTP para HTTPS.

Wordpress HTTP to HTTPS

No painel do WordPress, acesse o menu Configurações e selecione a opção Permalinks.

Wordpress permalinks menu

Clique no botão Salvar alterações para atualizar sua configuração de link permanente.

Wordpress backup permalinks

Você terminou a configuração do seu site.

Abra seu navegador e tente acessar a versão HTTPS do seu site.

Se você tentar abrir o URL HTTP do seu site, o servidor web Apache deve redirecioná-lo automaticamente para a versão HTTPS.

Certifique-se de que tudo esteja funcionando.

Tutorial - WordPress Sitemap

Se o seu site WordPress oferece um Sitemap, você precisa gerar o Sitemap novamente.

Normalmente, as pessoas usam o plugin Yoast SEO para criar o Sitemap dinamicamente.

Desativar o plugin YOAST SEO e ativar o plugin YOAST SEO.

Isso irá recriar o Sitemap do WordPress.

Wordpress YOAST SITEMAP Deactivate

Tutorial - Atualizar Links do Banco de Dados MySQL do WordPress

Agora, precisamos editar o banco de dados WordPress e alterar cada entrada de URL HTTP para HTTPS.

Você deve fazer backup de seu banco de dados antes de continuar.

Depois de terminar o backup do banco de dados WordPress, precisamos baixar o software WP-CLI.

# mkdir /downloads/wp-cli
# cd /downloads/wp-cli
# wget https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# php wp-cli.phar --info
# chmod +x wp-cli.phar
# cp wp-cli.phar /usr/local/bin/wp

Acesse o diretório de instalação do WordPress e teste o comando WP-CLI.

# cd /var/www/html/wordpress
# wp --info

OS: Linux 4.15.0-1021-aws #21-Ubuntu SMP Tue Aug 28 10:23:07 UTC 2018 x86_64
Shell: /bin/bash
PHP binary: /usr/bin/php7.2
PHP version: 7.2.10-0ubuntu0.18.04.1
php.ini used: /etc/php/7.2/cli/php.ini
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /downloads/wp-cli
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.0.1

Agora, vamos testar o comando que substituirá os links HTTP para a versão HTTPS no banco de dados.

Este comando não executará nenhuma mudança no banco de dados.

# wp search-replace 'http://techexpert.tips' 'https://techexpert.tips' --all-tables --skip-columns=guid --dry-run --allow-root

Warning: Skipping an uninitialized class "DUP_Package", replacements might not be complete.
Success: 18925 replacements to be made.

O teste foi realizado com sucesso.

Agora, vamos executar o comando que substituirá os links HTTP para a versão HTTPS no banco de dados.

Este comando executará mudanças no banco de dados.

# wp search-replace 'http://techexpert.tips' 'https://techexpert.tips' --all-tables --skip-columns=guid --allow-root

Warning: Skipping an uninitialized class "DUP_Package", replacements might not be complete.
Success: 18925 replacements were made.

Você terminou a configuração do banco de dados Mysql.

Opcional - Google Search Console

Se você estiver usando o Google Search Console, será necessário adicionar outro website usando seu URL HTTPS.

Infelizmente, o console de pesquisa do Google não oferece a opção de renomear seu site HTTP para HTTPS.

Você precisará configurar a versão HTTPS como um novo site.

Opcional - Google Analytics

Se você estiver usando o Google Analytics, precisará alterar as propriedades de seu website para refletir o URL HTTP.

Acesse o menu do administrador do Google Analytics e selecione a opção "Configurações da propriedade".

Altere a configuração do URL padrão de HTTP para HTTPS.

Google Analytics - HTTP to HTTPS