Certificado SSL/TLS de graça com Letsencrypt e Dokku

Dyorg Almeida
2 min readJun 10, 2016

--

Letsencrypt.org! Serviço criado lá em San Francisco com apoio de várias empresas conhecidas (Chrome, Mozilla, Facebook, Cisco são algumas delas). O objetivo é disponibilizar certificados SSL gratuitos e automatizado a fim de tornar a internet mais segura.

Neste post vou explicar como configurar certificado SSL com Letsencrypt em um app criada no Dokku. Se você ainda não conhece ou não usa Dokku, confira outro post que eu explico o que é e como instalar usando a Digital Ocean.

Acesse seu droplet via ssh e rode os seguintes comandos.

ssh root@seudominio.com# instalar letsencrypt no dokku
sudo dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git
# configurar seu email
dokku config:set --no-restart myapp DOKKU_LETSENCRYPT_EMAIL=your@email.tld
# rodar letsencrypt
dokku letsencrypt myapp

Pronto! Sua aplicação já está com o certificado SSL funcionando.

Limite de certificados

Letsencrypt possui limite de certificados emitidos para evitar abusos. Dessa forma para eventualmente não exceder o seu limite, nas apps que você quiser somente fazer testes, utilize o seguinte comando antes de rodar o letsencrypt.

dokku config:set — no-restart myapp DOKKU_LETSENCRYPT_SERVER=stagingdokku letsencrypt myapp

Renovação automática

O certificado cedido pela Letsencryt expira em 3 meses, diferente dos outros certificados pagos que expiram somente após 1 ano. Mas isso não é nenhum problema, uma vez que você pode automatizar a renovação.

Dentro do seu droplet via ssh, abra o modo edição do crontab:

dokku crontab -e

Adicione o seguinte script no crontab. Na nossa configuração, a cada semana será rodado o script verificando todos os certificados das suas apps, caso algum já possa ser renovado, a renovação será realiza automaticamente.

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow command
0 1 * * 1 dokku letsencrypt:auto-renew &>> /var/log/dokku/letsencrypt.log

Links que foram úteis:

https://letsencrypt.org/

https://blog.semicolonsoftware.de/securing-dokku-with-lets-encrypt-tls-certificates/

https://blog.semicolonsoftware.de/running-dokku-letsencrypt-auto-renewal-as-a-cronjob/

--

--

Dyorg Almeida

Startup entrepreneur. Full Stack Developer & Certified PHP Engineer. MBA in Project Management.