Mudanças entre as edições de "Certificado SSL"
(7 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 7: | Linha 7: | ||
</div> | </div> | ||
onde | onde '''example''' será o nome relacionado ao seu domínio. | ||
Logo em seguida será apresentada uma sére de perguntas sobre sua empresa que servirão de base para que o provedor do SSL possa gerar seus certificados. Favor responder utilizando apenas caracteres alfanuméricos. | Logo em seguida será apresentada uma sére de perguntas sobre sua empresa que servirão de base para que o provedor do SSL possa gerar seus certificados. Favor responder utilizando apenas caracteres alfanuméricos. | ||
Linha 47: | Linha 47: | ||
</div> | </div> | ||
Onde | Onde '''ssl-bundle''' é o nome que você dará ao arquivo final que é a cadeia de certificados e será utilizada para a instalação do certificado. | ||
'''Agora é hora de armazenar esse certificado e a chave privada no servidor.''' | '''Agora é hora de armazenar esse certificado e a chave privada no servidor.''' | ||
Linha 60: | Linha 60: | ||
'''Configurando o SSL no Nginx''' | '''Configurando o SSL no Nginx''' | ||
Dentro da pasta do Nginx no Docker vá até a pasta conf.d altere o arquivo zz-default.conf como segue: | Dentro da pasta do Nginx no Docker vá até a pasta '''conf.d''' altere o arquivo '''zz-default.conf''' como segue: | ||
[[Arquivo:Cmlsslconfig2.jpg|500px|center|Exportação para RAIS]] | [[Arquivo:Cmlsslconfig2.jpg|500px|center|Exportação para RAIS]] | ||
O primeiro '''server{}''' é comum para todos pois é o padrão http com porta 80, o ssl é do server logo abaixo e utiliza a porta 443. Atenção para o campo '''name_server''' que deverá o exatamente o nome do seu domínio registrado. | O primeiro '''server{}''' é comum para todos pois é o padrão http com porta 80, o ssl é do server logo abaixo e utiliza a porta 443. Atenção para o campo '''name_server''' que deverá o exatamente o nome do seu domínio registrado. | ||
Em '''ssl_certificate''' e '''ssl_certificate_key''' terá o caminho exato de onde você armazenou os arquivos '''no servidor'''. | Em '''ssl_certificate''' e '''ssl_certificate_key''' terá o caminho exato de onde você armazenou os arquivos '''no servidor''', que são sua chave gerada junto com o CSR e o seu certificado concatenado. | ||
Outro detalhe importante é na linha | Outro detalhe importante é na linha 53 onde '''proxy_pass''' é passado o endereço da VM no google cloud que é o IP principal e logo após a porta, no caso a 80. O restante é comum para todos os casos. | ||
Para mais outras lojas e domínio será utilizado o mesmo certificado logo '''ssl_certificate''' e '''ssl_certificate_key''' não irão mudar pois será um certificado multi domínio. | Para mais outras lojas e domínio será utilizado o mesmo certificado logo '''ssl_certificate''' e '''ssl_certificate_key''' não irão mudar pois será um certificado multi domínio. | ||
Basta somente criar outro '''server{}''' com as configurações apropriadas. | Basta somente criar outro '''server{}''' com as configurações apropriadas. | ||
Linha 92: | Linha 92: | ||
chmod 777 -R var/ pub/ | chmod 777 -R var/ pub/ | ||
</div> | </div> | ||
'''<div style="color: red">Reiniciar o Docker no servidor após o termino de todos os passos acima. Caso não faca essa operação, o certificado não será validado</div>''' | |||
Pronto, sua loja está com SSL! | Pronto, sua loja está com SSL! |
Edição atual tal como às 20h00min de 13 de abril de 2018
Primeiramente é preciso gerar um código CSR para requisição do certificado.
Em uma plataforma unix abra o terminal rode o seguinte comando:
openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr
onde example será o nome relacionado ao seu domínio.
Logo em seguida será apresentada uma sére de perguntas sobre sua empresa que servirão de base para que o provedor do SSL possa gerar seus certificados. Favor responder utilizando apenas caracteres alfanuméricos.
Country Name: Apenas a sigla. (e.g. BR, US).
State or Province Name: Nome completo do estado (e.g. Minas Gerais, São Paulo).
Locality Name: Nome completo da cidade exatamente como está registrado no cnpj (e.g. UBA).
Organization Name: O nome oficial da empresa como está registrado no cnpj, nome fantasia ou razão social (e.g. TEK-SYSTEM INFORMATICA LTDA - ME).
Organization Unit Name: Se trata de departamento, se não houver um específico pode deixar em branco.
Common Name: O seu domínio registrado sem http, https ou www (e.g. tekwebserver.com.br).
Email Address: Utilizado somente para geração do certificado.
A Challenge Password: Pode gerar uma senha, mas ela servirá somente para a comunicação entre o requerente do certificado e o provedor, portanto pode deixar em branco.
An Optional Company Name: Esta opção também pode ficar em branco.
Ao final ele irá gerar dois arquivos:
1) Um deles é example.key que é a sua chave privada e será utilizada para a instalação do certificado no servidor.
2) O outro é o example.csr que é o código CSR necessário para requisição e assinatura do certificado.
Normalmente eles são armazenados na pasta raíz da sua máquina e você deverá fornecê-los ao provedor de SSL(no nosso caso o Comodo) quando for solicitado.
Após isso eles irão enviar um email com as opções para validação do certificado, que pode ser feita pelo próprio email. Após a validação você receberá um arquivo .zip contendo 4 arquivos de certificado.
Você deverá concatenar esses 4 arquivos em 1 somente. Neste momento a ordem de concatenação é extremamente importante, caso contrário o certificado não irá funcionar. Primeiro vem o certificado que contém o nome do seu domínio, logo após o que contém o nome DomainValidation, em seguida o que contém o nome AddTrust no meio e por fim o que contém Root no nome. Logo, o comando será algo parecido com isto:
cat example_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt >> ssl-bundle.crt
Onde ssl-bundle é o nome que você dará ao arquivo final que é a cadeia de certificados e será utilizada para a instalação do certificado.
Agora é hora de armazenar esse certificado e a chave privada no servidor.
Primeiro é preciso passar o caminho no docker-compose.yml da seguinte forma:
Na linha 13 é passado antes de ":" o caminho dentro da pasta do nginx do docker onde as chaves estão e do lado direito onde elas se encontram no servidor. Portanto você precisa se certificar de que os arquivos estão nessas pastas.
Configurando o SSL no Nginx
Dentro da pasta do Nginx no Docker vá até a pasta conf.d altere o arquivo zz-default.conf como segue:
O primeiro server{} é comum para todos pois é o padrão http com porta 80, o ssl é do server logo abaixo e utiliza a porta 443. Atenção para o campo name_server que deverá o exatamente o nome do seu domínio registrado. Em ssl_certificate e ssl_certificate_key terá o caminho exato de onde você armazenou os arquivos no servidor, que são sua chave gerada junto com o CSR e o seu certificado concatenado. Outro detalhe importante é na linha 53 onde proxy_pass é passado o endereço da VM no google cloud que é o IP principal e logo após a porta, no caso a 80. O restante é comum para todos os casos. Para mais outras lojas e domínio será utilizado o mesmo certificado logo ssl_certificate e ssl_certificate_key não irão mudar pois será um certificado multi domínio. Basta somente criar outro server{} com as configurações apropriadas.
Agora o seu servidor Nginx está configurado e pronto para utilizar https na sua loja. Agora vá até a administração do magento em Loja/Configuração, na parte de cima em Ambiente selecione a sua loja que irá receber o https. Vá em Geral/Web/URLs Base (Segura) e configure da seguinte forma:
No campo Usar URL Segura no Frontend e marque sim.
Após isso reinicie o nginx rodando o comando docker restart id passando o id dele, este pode ser facilmente visualizado rodando docker ps -a
Agora acesse o docker pelo comando docker-compose exec magento bash e rode os seguintes comando:
php bin/magento setup:upgrade
php bin/magento indexer:reindex
php bin/magento cache:clean
php bin/magento cache:flush
chmod 777 -R var/ pub/
Pronto, sua loja está com SSL!