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.
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.