Este artigo entrará em detalhes sobre como instalar certificados no Nginx para Ubuntu. Este tutorial também é válido para distribuições linux baseadas em Debian. Este tutorial pressupõe que você já realizou a validação do seu certificado. Caso ainda não tenha realizado a etapa de validação, clique aqui.
Vamos lá!
- Baixando e enviando pro servidor!
Acesse sua conta na Brhost, clique no menu Serviços >> Meus Serviços e depois no certificado que deseja baixar.
Após isto, clique em Baixar certificado.
Descompacte o arquivo do certificado, que contém várias pastas(Entenda o que cada pasta significa).
Crie uma pasta chamada ssl dentro do diretório /etc/nginx utilizando o comando mkdir /etc/nginx/ssl
Crie uma nova pasta dentro da pasta recém criada, com o nome do seu dominio utilizando o comando mkdir /etc/nginx/ssl/seudominio.com.br
Voltando ao seu computador, envie todos os arquivos da pasta pem, que veio no certificado baixado para a pasta seudominio.com.br.
*seudominio.com.br é apenas um exemplo, utilize o seu dominio verdadeiro.
- Modificando o arquivo de configuração
Em seguida, vamos modificar o /etc/nginx/sites-available/default, o arquivo padrão de Host Virtual SSL do Nginx Se estiver usando um arquivo de bloco de servidor diferente, substitua seu nome nos comandos abaixo. É sempre importante fazer um backup antes de editar/remover qualquer arquivo.
Copie e cole no mesmo arquivo o bloco server responsavel pelo funcionamento do HTTP. Na versão padrão do Nginx, o bloco padrão HTTP é:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } }
No novo bloco adicionado,substitua as referências a porta 80 por 443.Seu arquivo completo deve ficar parecido com este:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } } server { listen 443 default_server; listen [::]:443 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } }
Após a linha do linha que contem a palavra "root" e depois da definição do Listen 443, adicione o seguinte bloco:
ssl on; ssl_certificate /etc/nginx/ssl/seudominio.com.br/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/seudominio.com.br/privkey.pem;
Seu arquivo final deve ficar assim:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } } server { listen 443 default_server; listen [::]:443 default_server; ssl on; ssl_certificate /etc/nginx/ssl/seudominio.com.br/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/seudominio.com.br/privkey.pem; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } }
- O gran finale!
Teste as configurações feitas utilizando o comando sudo nginx -t
Se a resposta foi "test is successful", reinicie o Nginx utilizando o comando sudo systemctl restart nginx
Para verificar se tudo deu certo, abra o navegador e acesse https://seudominio.com.br