Configuração de certificado digital em servidores web Nginx

Importante! Esta é uma visão geral da configuração de certificados digitais, para mais detalhes, consulte a documentação ofical do Nginx. 
Recomendamos também a leitura da documentação oficial do Openssl.

Para instalar um Certificado no Nginx, um "pacote de certificados" deve ser criado. Para isso, cada certificado (Serviço, Certificados intermediárias e Certificado Raiz) devem estar no formato PEM.

1) Abra cada certificado em um editor de texto e em seguida crie um novo documento;

2) Copie e cole o conteúdo de cada certificado para o documento criado.

A ordem deve ser a seguinte:

  • Certificado do serviço (https, por exemplo)
  • Certificados das ACs intermediárias
  • Certificado da AC Raiz

3) O arquivo final deve ser gravado com a extensão .crt e estar assim:

-----BEGIN CERTIFICATE-----
#Certificado do Serviço#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Certificado ACS Intermediárias#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Certificado da AC Raiz#
-----END CERTIFICATE-----

4) Salve o aquivo .crt e a chave privada em um diretório no servidor Nginx, /etc/nginx/certs, por exemplo;

5) Edite o arquivo de virtual hosts do Nginx. 
Inclua as seguintes linhas no arquivo de virtual host do site que terá acesso via https:

server{
listen 443;
ssl on;
ssl_certificate /etc/nginx/certs/your_domain.crt;
ssl_certificate_key /etc/nginx/certsyour_domain.key;
server_name your.domain.com;
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;

location / {
root /home/www/public_html/your.domain.com/public/;
index index.html;
}
}

6) Importante - Certifique-se que os caminhos para os arquivos e seus respectivos nomes estão corretos;

  • O certificado do serviço deve ser o primeiro certificado no "pacote de certificados", seguido dos certificados das ACs Intermediárias e da AC Raiz, nesta ordem, conforme o passo 3.
  • A chave privada deve ser a mesma que foi usada para gerar a requisição de certificado (arquivo .csr).

7) Feito isso, reinicie o Nginx.