[Dica] Flatpak: Resolvendo o problema de Unacceptable TLS certificate (em 99% das vezes)

Nos ultimos dias eu tive que adicionar suporte a flatpak no Ubuntu tanto do desenvolvimento do Tiger OS quando em máquinas reais, mas não ia nem por reza, dava o seguinte erro:

Can't load uri https://flathub.org/repo/flathub.flatpakrepo: Unacceptable TLS certificate

Todas as suluções ou envolviam alguma solução miraculosa como “atualizei o sistema e voltou a funcionar” ou envolvia trocar o roteador, o problema com a primeira é que eu já estava com tudo na última versão estável, então 0 chances de ocorrer uma solução miraculosa assim, e a segunda: simplesmente inaceitável, não ia gastar um único centavo e ainda aumentar a quantidade de lixo eletrônico, nem a pau, ainda mais por causa de como eu descobri a solução (se quiser ir pra solução só rolar pro final):

Diagnosticando…

Primeiro o mais óbvio, acessei o site do Flathub e ok, nada de errado, saída do curl -I:

HTTP/2 200 
server: nginx/1.18.0 (Ubuntu)
date: Sun, 17 Oct 2021 02:17:08 GMT
content-type: text/html
content-length: 7451
vary: Accept-Encoding
last-modified: Tue, 28 Sep 2021 14:41:06 GMT
vary: Accept-Encoding
etag: "61532982-1d1b"
accept-ranges: bytes
expires: Tue, 16 Nov 2021 02:17:08 GMT
cache-control: max-age=2592000
cache-control: public, no-transform

Também ok, ou seja, esse erro não devia acontecer, então resolvi ver o conteúdo do arquivo de referência do flathub e ele dizia isso:

[Flatpak Repo]
Title=Flathub
Url=https://dl.flathub.org/repo/
Homepage=https://flathub.org/
Comment=Central repository of Flatpak applications
Description=Central repository of Flatpak applications
Icon=https://dl.flathub.org/repo/logo.svg

Note que a URL faz referência a https://dl.flathub.org/repo/ e pra minha surpresa lá tinha o mesmo arquivo, então eu tentei adicionar e… deu o mesmo erro… Mas eu quis ser mais agressivo, se o erro é de TLS, geralmente esse erro acontece porque o o client (no caso o Flatpak) não consegue estabelecer uma relação de confiança com o servidor (Flathub) isso pode acontecer por n motivos, meu roteador e minha provedora não eram, afinal o cURL conseguiu, então eu fui testando coisas em ordem reversa pra descobrir, primeiro resetei pacote ca-certificates e… Nada, depois dei um purge no Flatpak removi tudo que ele acessava e reinstalei e na maioria das vezes, esse truque de dar purge no Flatpak resolvia 80% das vezes mas em 20% das vezes não, eu ainda não consegui descobri o mistério dos 20% mas achei a solução pra 19%… Reinstalar os certificados SSL segundos antes de adicionar a Flathub e usar dl.flathub

A solução

Primeiro dê purge no Flatpak:

sudo apt purge flatpak* -y

Depois mande reinstalar

sudo apt install flatpak -y

Depois reinstale os certificados SSL, isso basicamente vai alterar a data de modificação em disco deles (tanto é que só dar touch resolveria, mas faz do jeito que manda o protocolo):

sudo apt install --reinstall ca-certificates

Agora adicione o Flathub no sistema:

sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

E pronto, em 99% das vezes isso vai funcionar e se você estiver curioso, sim, eu tentei 200 vezes pra ter certeza (automatizado, óbvio) e em 2 falhou (em todas os locais, então o 99% é literal mesmo), tentei no meu PC, em VM, no WSL e no GitHub Actions

4 curtidas

Tive o mesmo problema aqui, seu tutorial me poupou bocados de tempo. Muito obrigado!

1 curtida