Olá pessoal que acompanha nosso querido Blog Seeds!
Hoje venho falar sobre uma (não tão) árdua tarefa: ativar ou renovar um certificado SSL. Para que possamos usar nossos sites com https e garantir a segurança de todos que os acessam.
O que é
O Secure Socket Layer (SSL) cria uma ligação criptografada entre um servidor e um browser, funcionando de maneira similar ao protocolo TCP através da criptografia de chaves públicas e privadas. Estas chaves são validadas por empresas que possuem Certificados de Autoridade. Algumas vezes eles são fornecidos gratuitamente, sempre confira com quem hospeda o seu site!
Escolhendo seu Certificado
O processo de ativação/renovação de um certificado SSL é muito suscetível a erros. Não só na parte técnica como também na hora de escolher que certificado comparar. Os serviços providenciam o SSL através de um Certificado de Autoridade (CA) confiável e apresentam variados planos para um site:
Single Domain: São usados para domínios singulares como:
exemplo.com
Nota-se que o exemplo citado abaixo não é coberto e redirecionamentos podem ser necessários
www.exemplo.com
Wildcard: Garante que não só os domínios, mas também os subdomínios são abrangidos pelo certificado.
Domínios:
example.com
Subdomínios *:
.exemplo.com
Multiple Domain: Também conhecidos como certificados SAN ou UC podem ser usados para garantir que múltiplos domínios sejam adicionados ao campo Subject Alternative Name. O certificado pode ser usado com:
exemplo.com, www.exemplo.com, e exemplo.net.
As validações de domínio podem ser feitas, em ordem de asseguração mais baixa para mais alta:
- Domain Validation (DV);
- Organization Validation (OV);
- Extended Validation (EV). Este não vale para o tipo Wildcard.
Alguns CA oferecem planos e condições muito específicas, fique atento para escolher a que melhor se encaixa no seu projeto.
Gerando um CSR e Chave Privada
Depois de ter os pré-requisitos é hora de gerar o seu Certificate Signing Request (CSR) e Chave Privada. Isto pode ser feito usando openssl.
Este processo seguinte irá gerar dois arquivos:
- exemplo.com.csr que posteriormente deve ser enviado para o CA em questão, para que seja requisitado o certificado SSL.
- exemplo.com.key é a sua chave privada, e deve ser armazenado da maneira mais segura possível, para que este não caia em mãos erradas.
Para gerar a chave privada e o CSR, use este comando na sua linha de comando (substitua examplo.com pelo o nome do seu domínio):
openssl req -newkey rsa:2048 -nodes -keyout exemplo.com.key -out exemplo.com.csr
Depois disso, várias informações vão ser requisitadas para serem incluídas no seu CSR. A parte mais crucial desta etapa é o campo Common Name. Que deve ser o mesmo nome em que você deseja usar o certificado. Por exemplo:
exemplo, exemplo.com, www.exemplo.com, ou (para um certificado wildcard) *.exemplo.com.
Caso você esteja planejando conseguir um certificado com validação OV ou EV, garanta que todos os outros campos estão preenchidos precisamente com as informações de empresa/organização.
Country Name (2 letter code) [AU]:BR State or Province Name (full name) [Some-State]:Rio Grande do Sul Locality Name (eg, city) []:Canela Organization Name (eg, company) [Internet Widgits Pty Ltd]:Minha Empresa Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []:exemplo.com Email Address []:[email protected]
Na hora de enviar a requisição para o CA, é necessário colar o conteúdo do arquivo .CSR. Independente de qual painel você esteja utilizando, depois de colar o conteúdo do CSR, a visualização vai estar bem parecida com a imagem abaixo:
x
Depois disso, o CA contratado pode enviar um ou mais arquivos .crt. Frequentemente diretamente no painel, mas podem também vir anexados por e-mail, dependendo de como trabalha o CA escolhido.
Para que você garantir que o seu certificado SSL seja instalado com sucesso, deve-se ter em mãos os seguintes arquivos:
- exemplo.com.key (sua chave privada que foi criada anteriormente)
- intermediate.crt (ou assinatura do seu CA equivalente)
- exemplo.com.crt
Caso você receba múltiplos CRT’s, é recomendado que se faça a junção dos .crt’s criando um arquivo geralmente nomeado como intermediate.crt. Nota-se, no entanto, que exemplo.com.crt não é adicionado neste novo arquivo, apenas a(s) assinatura(s) do CA. Isso pode ser feito pela linha de comando com facilidade:
cat ca_exemplo1.crt ca_exemplo2.crt ca_exemplo3.crt > intermediate.crt
Depois disso, geralmente pode-se seguir ao painel de hospedagem do seu site, onde o upload destas informações pode ser feita de maneira facilitada. Aqui vou explicar como inserir em um servidor Nginx.
Instalando SSL em um servidor Nginx
Se você quiser fazer a instalação no seu servidor, o primeiro passo é fazer a criação do arquivo chained.crt. Este é construído de forma similar ao intermediate.crt que criamos anteriormente. A diferença é que dessa vez vamos estar incluindo também o conteúdo do nosso exemplo abaixo no arquivo final.
exemplo.com.crt
Então, da mesma forma, podemos fazer este procedimento através da linha de comando:
cat exemplo.com.crt intermediate.crt > exemplo.com.chained.crt
Agora podemos seguir para o diretório onde está localizado o bloco de configurações do seu servidor, aqui, vamos assumir que este está localizado em /etc/nginx/sites-enabled.
Sempre que você souber que algo pode ser resolvido com a linha de comando, sugiro que use-a para resolver. Em geral trabalhar com ela economiza muito tempo. Vamos seguir usando-a para simplesmente navegar até este diretório que estamos querendo chegar:
cd /etc/nginx/sites-enabled
Vou também assumir que você quer adicionar o SSL no Server Block padrão. Neste caso abra o arquivo Default para edição.
sudo vi default
Em seguida, altere o valor da diretiva listen para que fique como o exemplo abaixo:
listen 443 ssl;
Agora encontre a diretiva server_name e garanta que o valor está exatamente igual ao nome do domínio desejado. Crie também duas diretivas adicionais: ssl_certificate e ssl_certificate_key.
- ssl_certificate: Deve ter como valor o caminho do diretório onde está o arquivo chained.crt criado anteriormente.
- ssl_certificate_key: O valor aqui contido deve ser o caminho do diretório onde está a chave privada (exemplo.com.key)
No final das contas, vai ficar algo muito parecido com isto:
server_name example.com; ssl_certificate /home/rootzen/example.com.chained.crt; ssl_certificate_key /home/rootzen/example.com.key;
O passo final é salvar este bloco que foi editado e reiniciar o servidor.
sudo service nginx restart
Caso se depare com uma situação de renovação de SSL, o processo é o mesmo que é feito na primeira instalação, e uma nova chave privada e csr devem ser gerados.
Traduzido e adaptado de:
How to Install an SSL Certificate From a Commercial Certificate Authority
Espero que agora você consiga começar mais confiante a desbravar o mundo de uma forma mais https daqui em diante!
- Escrito originalmente por Pietro Rutzen.
Dica: A Orgânica é uma agência de Marketing Digital especializada. Saiba mais!