EticaAI / aguia-pescadora

Documentação de toda pilha de soluções e de usuário do PaaS da Etica.AI. Informações do cluster Tsuru sendo configurado: [Nós: 3][CPU: 14][RAM: 32GB][Disco: 800GB SSD][Custo: < 100 BRL/mês]
https://aguia-pescadora.etica.ai
The Unlicense
1 stars 0 forks source link

HTTPS no Tsuru via Wildcard SSL de domínio principal etica.dev #10

Closed fititnt closed 5 years ago

fititnt commented 5 years ago

Pelo que pesquisei previamente obter/renovar SSL com letsencrypt ainda não é possível usando apenas os componentes padrões da stack to Tsuru. Porém certificados já criados e configurados sim.

Este issue aqui é para catalogar como vamos implementar no nosso caso. O exemplo mais imediato seria o uso de tanto domínio principal como subdomínios de http://etica.dev / https://etica.dev (vide https://github.com/EticaAI/aguia-pescadora/issues/9) no nosso cluster.

fititnt commented 5 years ago

Para quem tiver interesse, aqui tem documentação de como gerar as chaves do HTTPS do Let's encrypt de forma offline, apenas usando docker. Isso pode ser útil em especial para quem teria interesse de usar o Plan B diretamente ou então outra solução que não tenha automação pronta.

O commit é este:

https://github.com/EticaAI/aguia-pescadora/commit/8b58152405898b0bbf21f3cf418f87886e817c7c#diff-ae7f7c6cba0657186ecad1b9a1b4b75f

E aqui o copia e cola comentado

#------------------------------------------------------------------------------#
# SEÇÃO MVP DE HTTPS DE *.ETICA.DEV                                            #
#------------------------------------------------------------------------------#
# @see https://github.com/EticaAI/aguia-pescadora/issues/10
# @see https://github.com/EticaAI/aguia-pescadora/issues/14
# @see https://certbot.eff.org/docs/using.html#manual
# @see https://github.com/certbot/certbot/issues/5724#issuecomment-373018527

#### Let's Encrypt Wildcard SSL para *.etica.dev _______________________________

# Os comandos dessa sesão são executados em uma maquina que tenha Docker
# instalado. No caso estou usando meu Notebook e (ao menos neste momento)
# salvando em uma pasta que não é salva no repositório do git.
# Troque as pastas do computador local ou volume docker que guardarão os
# arquivos (primeira parte do -v) para o seu caso e adapte os
# valores -d "etica.dev" -d "*.etica.dev" para o seu caso

docker run -it --rm --name certbot \
-v "/alligo/code/eticaai/aguia-pescadora/segredos/certbot/etc/letsencrypt:/etc/letsencrypt" \
-v "/alligo/code/eticaai/aguia-pescadora/segredos/certbot/var/lib/letsencrypt:/var/lib/letsencrypt" \
certbot/certbot \
certonly --manual --preferred-challenges dns-01 --agree-tos --server https://acme-v02.api.letsencrypt.org/directory \
-d "etica.dev" -d "*.etica.dev"

## ATENÇÃO! Como são 2 domínios o desafio na primeira vez irá pedir para
#           adicionar duas entradas para o registro do tipo TXT do seu DNS.
#           Sim, é possível fazer isso, porém a interface do seu provedor
#           pode ter uma forma diferente das outras.

## ATENÇÂO 2: se puder colocar um TTL, procure colocar baixo, visto que se errar
#             testando pode demorar para limpar os caches de DNS. No meu caso
#             tive que esperar pelo menos ns 90 segundos

# O comando a seguir poderia ser usado para depurar quais valores o DNS server
# estaria retornando. Os servidores do Let's Encrypt potencialmente podem usar
# outros com cache mais baixo
dig _acme-challenge.etica.dev txt
fititnt commented 5 years ago

A versão do 2.0-alpha do águia pescadora em https://github.com/EticaAI/aguia-pescadora-ansible-playbooks já deve conter esta funcionalidade.