OpenCart - Habilitar conexão por HTTPS
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.


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.