Certificado SSL/TLS de graça com Letsencrypt e Dokku
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://blog.semicolonsoftware.de/securing-dokku-with-lets-encrypt-tls-certificates/
https://blog.semicolonsoftware.de/running-dokku-letsencrypt-auto-renewal-as-a-cronjob/