Skip to content

Instantly share code, notes, and snippets.

@HenriqueSilverio
Last active February 26, 2022 15:03
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save HenriqueSilverio/b6172060fc9a1cadfa064ee36d224360 to your computer and use it in GitHub Desktop.
Save HenriqueSilverio/b6172060fc9a1cadfa064ee36d224360 to your computer and use it in GitHub Desktop.
Instalação/Configuração de SSL/TLS no Nginx com Let’s Encrypt

SSL/TLS no Nginx com Let’s Encrypt

Instalar o cliente do Let’s Encrypt

Primeiro adicione o repositório do certbot com o seguinte comando:

add-apt-repository ppa:certbot/certbot

Em seguida instale o certbot e o plugin para o Nginx:

apt-get update

apt-get install python-certbot-nginx

Obter o certificado SSL/TLS

Para gerar o certificado com o plugin para o Nginx, basta rodar o comando:

sudo certbot --nginx -d domain.com -d www.domain.com

Obs: Substituindo domain.com pelo domínio da aplicação.

Após isso responda as perguntas que o assistente do certbot fará, e pronto!

O certificado será gerado, e terá validade de 90 dias.

Renovar certificado automaticamente

Podemos configurar um cron job para renovar o certificado automaticamente.

Primeiro rode o comando:

crontab -e

E configure o comando do certbot para rodar diariamente:

0 12 * * * /usr/bin/certbot renew --quiet

Esse comando irá verificar a validade do certificado e renova-lo se necessário.

Configuração necessária para utilizar Guzzle/cURL com SSL/TLS

Para que o Guzzle funcione corretamente em um ambiente com SSL/TLS, instale esse pacote:

apt-get install ca-certificates

Em seguida, no diretório do usuário que possui permissão de acesso aos projetos, crie o arquivo ~/.curlrc com o seguinte código:

capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt

Reinicie o php-fpm e pronto! Problema resolvido.

Mais informações na documentação do Guzzle.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment