Versões do OpenCart compatíveis com este tutorial:
OpenCart 2.0.3.1 ou superior
OpenCart 3.0.1.1 ou superiorPré-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.
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.
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.