31.01.2025

Como instalar o certificado SSL no Nginx para Ubuntu 20.04

Para usar o protocolo HTTPS em um site, você deve obter o certificado TLS/SSL e configurar o Nginx. Você pode obter um certificado de uma autoridade de certificação confiável por dinheiro em um grande número de serviços. A versão gratuita é possível graças ao serviço Let's Encrypt e é descrita aqui na etapa 3.Você também precisa executar configuração básica do Nginx. Se você usar certificados autoassinados, o navegador exibirá um erro ao verificar a segurança.

Configuração básica de SSL

Se você adquiriu um certificado SSL, deverá criar uma cadeia completa do seu certificado a partir da chave pública recebida e da cadeia de centros de certificação. Para fazer isso, coloque o conteúdo do arquivo de cadeia no final do arquivo de chave pública. Os arquivos podem ter a extensão .pem ou .crt.

cat cert.pem chain.pem > fullchain.pem

Agora copie os arquivos para o seu servidor. Uma boa opção é colocar a chave privada (.key ou .pem) na pasta /etc/ssl/private/ e o fullchain.pem na pasta /etc/ssl/certs/.

Agora, abra o arquivo de configuração de seu host virtual (/etc/nginx/sites-available/domain-name.com) e adicione as seguintes linhas:

server {
listen 443 ssl;
server_name domain-name.com; # Your website's domain name
ssl_certificate /etc/ssl/certs/fullchain.pem; # Path to the full chain of your SSL certificate
ssl_certificate_key /etc/ssl/private/privkey.pem; # Path to the private key of your SSL certificate
}

Não se esqueça de definir os parâmetros root e index nessa seção, assim como na seção HTTP.
Reinicie o Nginx.

systemctl restart nginx

Agora você pode verificar seu certificado SSL e sua configuração usando https://www.ssllabs.com/ssltest/ e prosseguir com as configurações que não correspondem à classe A.

Desativação de protocolos desatualizados e ativação da prioridade para cifras de servidor

Especifique o uso das versões 1.2 e 1.3 do TLS e a prioridade para as cifras do servidor. Abra o arquivo /etc/nginx/nginx.conf e corrija ou adicione as seguintes linhas na seção http.

http {
...
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
...
}

Reinicie o Nginx.
[/passo]

systemctl restart nginx

Redirecionamento de HTTP para HTTPS

Para configurar o site para funcionar somente em HTTPS, você precisa adicionar um redirecionamento com HTTP. Abra o arquivo de configuração do seu host virtual (/etc/nginx/sites-available/domain-name.com), exclua a seção HTTP:

server {
listen 80;

}

Agora, adicione uma nova seção com os seguintes parâmetros:

server {
listen 80;
server_name domain-name.com; # Your website's domain name
return 301 https://$host$request_uri; # Redirect
}

Agora reinicie o Nginx.

systemctl restart nginx