0
media

Habilitando a conexão por https no OpenCart

Versão do OpenCart utilizada neste tutorial:

OpenCart 2.0.3.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á!

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.

Edite os arquivo config.php, e localize a linha que é parecida com o exemplo abaixo:

define(‘HTTPS_SERVER’, ‘http://www.seudominio.com.br/’);

E modifique apenas o http para https, conforme o exemplo abaixo:

define(‘HTTPS_SERVER’, ‘https://www.seudominio.com.br/’);

Salve a alteração no arquivo.

Edite o arquivo /admin/config.php, e 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/’);

E 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/’);

Salve as alterações no arquivo.

Edite o arquivo /system/config/admin.php, e localize a linha abaixo (Somente na versão 2.2.0.0 do OpenCart):

$_['site_ssl']  = false;

Para:

$_['site_ssl']  = true;

Edite o arquivo /system/config/catalog.php, e localize a linha abaixo (Somente na versão 2.2.0.0 do OpenCart):

$_['site_ssl']  = false;

Para:

$_['site_ssl']  = true;

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:

Se você adicionou links para outros sites em sua página, certifique-se que os mesmos sejam acessados por https, se não for possível, remova os links.

Se você adicionou imagens direto no seu layout, 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.

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.

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.

- Agora vamos colocar as linhas de código no arquivo .htaccess que serão responsáveis por forçar o uso do https.

Coloque o código abaixo no final do arquivo .htaccess:

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.

- Caso sua loja esteja em um diretório (pasta), 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.

- E por último, 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.

Dica rápida:

- Caso perceba que após a ativação do Cloudflare apareceram 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.