Habilitando a conexão por https no OpenCart
Versões do OpenCart compatíveis com este tutorial:
OpenCart 2.0.3.1 ou superior
OpenCart 3.0.1.1 ou superior
Pré-requisitos para este tutorial:
Certificado de segurança instalado em sua hospedagem.
Introdução:
Um recurso essencial e indispensável para a sua loja, é a utilização de certificado de segurança para a troca de informações através de uma conexão segura (https) entre o seu cliente e a loja, por isso, neste tutorial, vou ensinar como habilitar a utilização da conexão segura no OpenCart.
Vamos lá!
1º Acesse a administração de sua loja, e vá no menu Configurações→Lojas, clique no botão Editar, clique na aba Servidor, localize o campo Ativar SSL e marque a opção Sim, depois clique no botão Salvar.
2º Edite os arquivo config.php, localize a linha que é parecida com o exemplo abaixo:
define(‘HTTPS_SERVER’, ‘http://www.seudominio.com.br/’);
Modifique apenas o http para https, conforme o exemplo abaixo:
define(‘HTTPS_SERVER’, ‘https://www.seudominio.com.br/’);
E salve as alterações no arquivo.
3º Edite o arquivo /admin/config.php, localize as linhas que são parecidas com o exemplo abaixo:
define(‘HTTPS_CATALOG’, ‘http://www.seudominio.com.br/admin/’);
define(‘HTTPS_SERVER’, ‘http://www.seudominio.com.br/’);
Modifique apenas o http para https, conforme o exemplo abaixo:
define(‘HTTPS_CATALOG’, ‘https://www.seudominio.com.br/admin/’);
define(‘HTTPS_SERVER’, ‘https://www.seudominio.com.br/’);
E salve as alterações no arquivo.
4º Edite o arquivo /system/config/admin.php, localize a linha abaixo (Somente na versão 2.2.0.0 do OpenCart):
$_['site_ssl'] = false;
Altere para:
$_['site_ssl'] = true;
E salve as alterações no arquivo.
5º Edite o arquivo /system/config/catalog.php, localize a linha abaixo (Somente na versão 2.2.0.0 do OpenCart):
$_['site_ssl'] = false;
Altere para:
$_['site_ssl'] = true;E salve as alterações no arquivo.
6º Edite o arquivo /catalog/controller/startup/startup.php, localize a linha abaixo (Somente na versão 2.2.0.0 do OpenCart):
$this->config->set('config_url', HTTP_SERVER);
E após a linha acima, adicione:
$this->config->set('config_ssl', HTTPS_SERVER);
E salve as alterações no arquivo.
Problemas que você pode encontrar após ativar o SSL:
Se quando você acessar o ambiente seguro de sua loja for exibido um aviso que há itens não seguros, verifique as seguintes situações que ocasionam este problema:
1º Verifique se todos os arquivos com as extensões CSS e JS estão sendo carregados com "https://".
2º Verifique se todos os arquivos de fontes utilizadas nos arquivos CSS estão sendo carregados com "https://".
3º Se você adicionou imagens no código do seu layout (tema), verifique se você fez da forma correta:
– Assim é errado: <img src=”/image/minha-imagem.jpg” />
– Assim é errado: <img src=”http://www.meudominio.com.br/image/minha-imagem.jpg” />
– Assim é correto: <img src=”image/minha-imagem.jpg” />
– Assim é correto: <img src=”https://www.meudominio.com.br/image/minha-imagem.jpg” />
Para forçar o SSL em toda a loja:
- Vamos modificar nos arquivos config.php e /admin/config.php o http para https, para que os links da loja sejam todos gerados para serem abertos por https.
1º Edite os arquivo config.php, e localize a linha que é parecida com o exemplo abaixo:
define(‘HTTP_SERVER’, ‘http://www.seudominio.com.br/’);
E modifique apenas o http para https, conforme o exemplo abaixo:
define(‘HTTP_SERVER’, ‘https://www.seudominio.com.br/’);
Salve a alteração no arquivo.
2º Edite o arquivo /admin/config.php, e localize as linhas que são parecidas com o exemplo abaixo:
define(‘HTTP_CATALOG’, ‘http://www.seudominio.com.br/admin/’);
define(‘HTTP_SERVER’, ‘http://www.seudominio.com.br/’);
E modifique apenas o http para https, conforme o exemplo abaixo:
define(‘HTTP_CATALOG’, ‘https://www.seudominio.com.br/admin/’);
define(‘HTTP_SERVER’, ‘https://www.seudominio.com.br/’);
Salve as alterações no arquivo.
3º Edite o arquivo .htaccess para adicionar as linhas de código que irão forçar o uso do https.
- No final do arquivo .htaccess adicione o código abaixo:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.seudominio.com.br/$1 [R,L]
* Substitua o www.seudominio.com.br pelo domínio da sua loja, e caso você não utilize o www no seu domínio, apague o www.
- Se após utilizar o código acima, a URL da loja der erro de acesso, você pode tentar o código abaixo:
RewriteEngine On
RewriteCond %{HTTPS} != on
RewriteRule .* https://www.seudominio.com.br%{REQUEST_URI} [R,L]
* Substitua o www.seudominio.com.br pelo domínio da sua loja, e caso você não utilize o www no seu domínio, apague o www.
- Ou ainda, este outro código:
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
- Caso sua loja esteja em um diretório (pasta), e seja acessada deste diretório, utilize o código abaixo:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} diretorio RewriteRule ^(.*)$ https://www.seudominio.com.br/diretorio/$1 [R,L]
* Substitua a palavra diretorio pelo nome do diretório em que você instalou sua loja.
* Substitua o www.seudominio.com.br pelo domínio da sua loja, e caso você não utilize o www no seu domínio, apague o www.
- Se estiver utilizando o CloudFlare, acesse sua conta no CloudFlare, clique no domínio, depois no botão Crypto, e no campo SSL, selecione a opção Flexible.
E ao invés dos códigos citados anteriormente, utilize o código abaixo:
RewriteEngine On
RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
RewriteRule ^(.*)$ https://www.seudominio.com.br/$1 [L]
* Substitua o www.seudominio.com.br pelo domínio da sua loja, e caso você não utilize o www no seu domínio, apague o www.
Ou, caso estiver utilizando o multilojas com apenas um domínio utilizando o https do Cloudflare, utilize o código abaixo:
RewriteCond %{HTTP_HOST} ^seudominio.com.br$ [NC]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTPS}:s on:(s)
RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
* Substitua o seudominio.com.br pelo domínio da sua loja que vai utilizar o https.
Dica rápida:
- Caso após a ativação do Cloudflare surjam problemas como falhas em scripts jQuery.
Em sua conta no Cloudflare, no menu Speed, desative a opção Rocket Loader, pois as vezes ela causa problemas com os scripts jQuery do OpenCart.
Pronto!
Sua loja já está habilitada para utilizar seu certificado de segurança e promover a troca de informações com seu cliente de forma segura.
Considerações:
Espero que tenham gostado e habilitem este recurso essencial em sua loja.
Dúvidas:
Caso ainda tenha dúvidas, pesquise no fórum OpenCart Brasil.