# Renovação automática do Let's Encrypt e IPv6

**URL:** https://meta.discourse.org/t/lets-encrypt-auto-renewal-and-ipv6/156458
**Category:** Support
**Created:** [Julho 1, 2020, 10:10am UTC](https://meta.discourse.org/t/lets-encrypt-auto-renewal-and-ipv6/156458 "2020-07-01T10:10:33Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![gpetrov](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gpetrov/32/121075_2.png) [@gpetrov](https://meta.discourse.org/u/gpetrov)
#### Post date: [Julho 1, 2020, 10:10am UTC](https://meta.discourse.org/t/lets-encrypt-auto-renewal-and-ipv6/156458/1 "2020-07-01T10:10:33Z")

</div>

> [@jomaxro](#):
>
> > [@gpetrov](#):
> >
> > Todo o problema inicial foi causado pela falta de suporte ao IPv6 no Discourse, o que impediu a renovação dos certificados do Let’s Encrypt. Tínhamos um registro DNS AAAA, mas o Discourse não respondia no endereço IPv6 e os certificados falharam na renovação.
> 
> Seria ótimo se você pudesse criar um novo tópico para depurar isso. O Discourse oferece suporte completo ao IPv6. O Meta funciona via IPv6, assim como todos os nossos sites hospedados. Já executei vários sites auto-hospedados com IPv6 funcionando corretamente. Todos tinham SSL funcional via Let’s Encrypt.

Bem, o problema do IPv6 e do Let’s Encrypt foi realmente vago.

Ao reconstruir o Discourse, tudo funcionou perfeitamente — um novo certificado foi emitido.

Mas a renovação automática do Let’s Encrypt não funcionou: ocorreu um timeout, pois o site não era acessível via IPv6 (durante a execução) para que o Let’s Encrypt verificasse a pasta .well-known.

Também verificamos a instalação do host Docker e descobrimos que não havia encaminhadores ip6tables para a rede interna do Docker, como havia para o IPv4 — mas nas ip6tables tudo estava permitido…

Ativamos o IPv6 nas configurações do host Docker e reiniciamos o daemon, mas isso também não ajudou.

@jomaxro

---

<div class="post-metadata">

### Author: ![jomaxro](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jomaxro/32/126216_2.png) [@jomaxro](https://meta.discourse.org/u/jomaxro)
#### Post date: [Julho 1, 2020, 10:32am UTC](https://meta.discourse.org/t/lets-encrypt-auto-renewal-and-ipv6/156458/2 "2020-07-01T10:32:21Z")

</div>

Obrigado, George. Primeira pergunta: você pode confirmar que seguiu [discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md)?

Acabei de verificar um dos nossos sites de teste “auto-hospedados” no Digital Ocean com IPv6 habilitado e posso confirmar que o certificado SSL foi renovado sem problemas.

---

<div class="post-metadata">

### Author: ![gpetrov](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gpetrov/32/121075_2.png) [@gpetrov](https://meta.discourse.org/u/gpetrov)
#### Post date: [Julho 1, 2020, 10:44am UTC](https://meta.discourse.org/t/lets-encrypt-auto-renewal-and-ipv6/156458/3 "2020-07-01T10:44:12Z")

</div>

Sim, é isso que fizemos: instalamos o Docker manualmente antes de executar o discourse-setup.

Faz um tempo que fizemos isso (2,5 anos). Inicialmente, tudo funcionou bem, mas um ano depois, quando adicionamos o registro AAAA para o IPv6, as renovações automáticas pararam de funcionar e tivemos que executar o discourse rebuild toda vez apenas para obter um novo certificado SSL.

---

<div class="post-metadata">

### Author: ![jomaxro](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jomaxro/32/126216_2.png) [@jomaxro](https://meta.discourse.org/u/jomaxro)
#### Post date: [Julho 1, 2020, 10:52am UTC](https://meta.discourse.org/t/lets-encrypt-auto-renewal-and-ipv6/156458/4 "2020-07-01T10:52:25Z")

</div>

Você tem algum log do momento da falha na renovação automática? Eles seriam bastante úteis.

Além disso, você desviou do guia oficial de alguma forma? Proxy reverso adicional? Modificações manuais no `app.yml`? Configuração de firewall no sistema host? etc.

Não quero soar como se estivesse duvidando de você, mas, considerando os milhares de instalações auto-hospedadas que sabemos existir, muitas com IPv6, se as renovações de certificados SSL estivessem falhando para sites com IPv6, esperaríamos ouvir muito mais reclamações.

---

<div class="post-metadata">

### Author: ![gpetrov](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gpetrov/32/121075_2.png) [@gpetrov](https://meta.discourse.org/u/gpetrov)
#### Post date: [Julho 1, 2020, 11:00am UTC](https://meta.discourse.org/t/lets-encrypt-auto-renewal-and-ipv6/156458/5 "2020-07-01T11:00:09Z")

</div>

Houve um erro na minha atualização

```ruby
api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })

```

Por favor, me ajude a corrigi-lo.

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [Julho 1, 2020, 6:24pm UTC](https://meta.discourse.org/t/lets-encrypt-auto-renewal-and-ipv6/156458/9 "2020-07-01T18:24:04Z")

</div>

> [@gpetrov](#):
>
> Mas o Let’s Encrypt automático não funcionou — ocorreu um tempo limite, pois o site não era acessível via IPv6 (durante a execução) para que o Let’s Encrypt verificasse a pasta .well-known.

Isso geralmente significa que a entrada DNS AAAA estava com problemas. Como

> [@gpetrov](#):
>
> A VPS tinha IPv6 habilitado, mas, como disse, adicionamos o registro AAAA ao DNS muito depois.

Suponho que esse tenha sido de fato o caso.

Como hospedamos vários sites na DO sem problemas com IPv6 + Let’s Encrypt, isso parece ser um erro do usuário. Por favor, abra um novo tópico se conseguir fornecer passos para reproduzir o problema.

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [Julho 1, 2020, 6:24pm UTC](https://meta.discourse.org/t/lets-encrypt-auto-renewal-and-ipv6/156458/10 "2020-07-01T18:24:07Z")

</div>


