Mudanças entre as edições de "Certificado SSL"

De Tek-System Wiki
Ir para navegação Ir para pesquisar
 
(11 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 7: Linha 7:
</div>
</div>


onde <code>example</code> será o nome relacionado ao seu dominio.
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 39: Linha 39:
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.  
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.
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.  
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:
Logo, o comando será algo parecido com isto:


Linha 47: Linha 47:
</div>
</div>


Onde <code>ssl-bundle</code> é o nome que você dará ao arquivo final que é a cadeia de certificados e será utilizada para a instalação do certificado.
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|1100px|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 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.
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:

Exportação para RAIS

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:

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. 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:

Exportação para RAIS

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/

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

Pronto, sua loja está com SSL!

Links úteis:

http://www.techytalk.info/magento-2-behind-varnish-reverse-proxy/

http://nginx.org/en/docs/http/configuring_https_servers.html

https://helpdesk.ssls.com/hc/en-us/articles/203427502-How-to-generate-a-CSR-code-on-Apache-Nginx-using-OpenSSL

https://helpdesk.ssls.com/hc/en-us/articles/203427642-How-to-install-a-SSL-certificate-on-a-NGINX-server