Created: 2023-11-13 13:08 Updated: 2023-11-13 13:08

Tenho várias ferramentas pessoais que utilizam conexões HTTPS, e uso o requests com certa frequência. Mas, eis que um dia (hoje), me deparei com um probleminha: minhas requisições HTTPS a um determinado servidor falhavam na verificação do certificado. No entanto, no navegador, o acesso ocorria normalmente.

Como resolvi

Instalei o pacote certifi:

pip install certifi

Executei o Python no modo interativo, importei o módulo certifi e executei a função deste módulo que retorna onde os certificados estão instalados:

python3 
Python 3.12.0 (main, Oct  4 2023, 11:54:30) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import certi
>>> certifi.where()
'/home/mario/python-venv/myenv/lib/python3.12/site-packages/certifi/cacert.pem'

Observe que, no meu caso, eu estou usando um ambiente virtual, por isso o caminho aponta para um arquivo na minha pasta home.

Agora, abra o site desejado no navegador e baixe os certificados em formato PEM, edite o arquivo retornado pelo comando certifi.where() e adicione-os no final do arquivo.

Se toda a cadeia for adicionada corretamente, o certificado será validado corretamente.

Fui.