Introdução
No começo da Internet as quantidades de ameaças que temos hoje, nem mesmo eram imaginadas e assim o protocolo responsável pela exibição de páginas – o HTTP (Hypertext Transfer Protocol) – surgiu sem determinados cuidados com aspectos de segurança, que hoje são fundamentais.
O principal problema, é que ele permite que os dados sejam acessados no caminho entre o dispositivo que realiza o acesso e o servidor no qual o site está hospedado e quem o faz consegue identificar quais são esses dados, ou seja, consegue ler normalmente o conteúdo dos pacotes de dados.
Quando você instala o SSL (Secure Sockets Layer) no domínio associado ao seu site, as informações trocadas entre o computador de um visitante e o site, passam a ser criptografadas e com isso qualquer dado só poderá ser interpretado por quem o acessou, se o invasor tiver as informações necessárias para converter algo como "$apr1$62qf3izb$uQeWNquKKVCEqjpLXtaRZyO6r/", na palavra correspondente.
Em outras palavras, a informação criptografada torna-se ilegível para uma pessoa ou dispositivo que não tem acesso ao algoritmo responsável pela criptografia e que no caso, são apenas o servidor e o computador do usuário.
A adoção de HTTPS em um site, hoje já não é mais uma questão de opção, mas necessidade, tanto por melhorar a segurança do ambiente e a privacidade e segurança para os usuários, bem como porque atualmente os principais navegadores exibem alertas de segurança quando um site é acessado sem um certificado de segurança e na pior das hipóteses, porque sites sem esse importante recurso, são penalizados em termos de SEO.
Mas mesmo que você instale um certificado grátis ou o melhor e mais caro que puder encontrar, é possível que em alguns cenários, seu site não seja acessado usando o HTTPS, se por exemplo, o visitante estiver usando um sistema de cache.
É por isso que este tutorial tem como objetivo garantir que todo acesso feito após a instalação, se dê por HTTPS.
Pré-requisitos para forçar o acesso por HTTPS
Os procedimentos necessários são simples, no entanto, a sua adoção exige que algumas condições sejam atendidas:
-
Acesso à Internet;
-
Dados de acesso ao FTP ou SSH da conta de hospedagem;
-
Backup dos arquivos do site, caso os links internos e referências como imagens, façam uso de caminhos absolutos (ex: ”http://www.meudominio.com.br/imagens/imagem.png”). Isso porque ;
Passos para forçar o acesso usando HTTPS
Embora a princípio as alterações necessárias representem um grau de complexidade bastante pequeno, o trabalho pode ser extenso caso se utilize links e referências com caminhos absolutos, fazendo com que a quantidade de arquivos que precisam de alteração, seja grande.
Além disso, há pequenas diferenças no procedimento, dependendo do tipo de acesso que você tem à conta (FTP ou SSH). Sendo assim, vamos descrever os passos necessários de acordo com cada tipo de acesso.
Forçando o HTTPS usando o SSH
Para forçar que os acessos às páginas do site usem o HTTPS, usando o SSH, utilize os passos a seguir:
-
Abra seu cliente de SSH e conecte-se à sua conta de hospedagem, usando os dados de acesso fornecidos no e-mail de configurações que recebeu por ocasião da ativação da sua conta. No caso de utilizar o Windows 10, você pode seguir o tutorial “Como usar SSH no Windows 10”;
-
Vá até a pasta public_html ou a pasta em que o arquivo .htaccess está localizado;
-
A partir da pasta em que está localizado o .htaccess, digite o comando “cp .htaccess .htaccess.old”. Isso criará uma cópia do arquivo .htaccess original, para restauração no caso de algum erro involuntário na edição do original;
-
Digite “vi .htaccess”. O comando em questão diz ao Linux que deve abrir o arquivo .htaccess com o editor VI;
-
Ao entrar no editor, digite “/Rewrite” e aperte “enter”. Isso fará com que o editor busque por alguma regra de modo de reescrita já existente. Caso encontre, verifique se há a linha “RewriteEngine On”;
-
A seguir, pressione a tecla “i”, para entrar no modo de edição;
-
Copie o texto a seguir e cole no VI, clicando com o botão direito do mouse, na linha logo abaixo de “RewriteEngine On”, caso tal linha já exista, sendo que “seudominio” deve ser substituído por seu domínio real;
RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.seudominio/$1 [R,L]
-
Copie o texto a seguir e cole no VI, clicando com o botão direito do mouse, no começo do arquivo, caso tal linha não exista, sendo que “seudominio” deve ser substituído por seu domínio real;
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.seudominio/$1 [R,L]
-
Aperte a tecla “ESC”, que o faz sair do modo de edição e a seguir digite “:wq” e pressione “enter”, que faz com que o VI salve o arquivo e encerre o editor;
-
Encerre o acesso SSH, digitando “exit” e pressionando “enter”.
Forçando o HTTPS usando o FTP
Para forçar que os acessos às páginas do site usem o HTTPS, usando o FTP, utilize os passos a seguir:
-
Conecte-se por FTP à sua conta de hospedagem, usando o Filezilla;
-
Acesse a pasta public_html, onde está localizado o arquivo .htaccess e faça o download do mesmo;
-
Abra o .htaccess com o Notepad (bloco de notas) e use a combinação de teclas “CTRL + F” para ativar a busca interna do bloco de notas. Digite “Rewrite” e aperte “enter”. Isso fará com que o Notepad busque por alguma regra de modo de reescrita já existente. Caso encontre, verifique se há a linha “RewriteEngine On”;
-
Copie o texto a seguir na linha logo abaixo de “RewriteEngine On”, caso tal linha já exista, sendo que “seudominio” deve ser substituído por seu domínio real;
RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.seudominio/$1 [R,L]
-
Copie o texto a seguir e cole no começo do arquivo, caso tal linha não exista, sendo que “seudominio” deve ser substituído por seu domínio real;
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.seudominio/$1 [R,L]
-
Salve o arquivo e feche-o;
-
Renomeie o arquivo .htaccess contido na public_html para .htaccess.old, através do Filezilla, de forma que você tenha cópia do arquivo .htaccess original, para restauração no caso de algum erro involuntário no procedimento;
-
Envie o .htaccess alterado para a public_html;
-
Encerre o Filezilla.
Esse procedimento descrito acima, poderá ser suficiente para boa parte dos casos. No entanto, se o seu site foi desenvolvido usando links internos e referências com caminho absoluto, todos os arquivos do site que façam esse tipo de uso, precisarão ser alterados.
Dependendo do volume de arquivos que você tem, precisará alterar cada arquivo em que o link ou referência existir, colocando ao invés de http, o link com https. Nesse caso, é altamente indicado contar com um backup do site, antes de se realizar as alterações, para que se possa restaurar o site à sua condição anterior, caso existam erros na edição dos arquivos.
Todavia, se você tem acesso SSH à sua conta, há um modo prático e rápido usando linhas de comando do Linux.
Para tanto, estabeleça o acesso SSH e vá até a pasta public_html da sua conta.
Copie e cole cada uma das linhas a seguir e dê “enter”, após cada uma:
find ./ -type f -name "*.php" -exec sed -i 's/http:/https:/g' '{}' \;
find ./ -type f -name "*.html" -exec sed -i 's/http:/https:/g' '{}' \;
Isso faz com que todos os arquivos PHP e HTML do site sejam encontrados e cada ocorrência existente de “http:”, seja trocada por “https:”. Simples, rápido e seguro!
Conclusão
Garantir o uso do HTTPS é atualmente uma exigência, tanto para assegurar a privacidade e segurança dos seus visitantes, bem como estar em conformidade com os principais navegadores e não perder posicionamento no ranking dos mecanismos de busca.