Mudanças entre as edições de "Certificado SSL"
Linha 62: | Linha 62: | ||
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| | [[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. |
Edição das 18h44min de 21 de fevereiro 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 dominio.
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. Outro detalhe importante é na linha 47 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!