Como obter um certificado SSL para ser verificado em Python?

2

Eu tenho um certificado barato do EssentialSSL (Comodo é o CA) e fiquei surpreso ao descobrir que o Python não o reconheceu.

requests.exceptions.SSLError: [Errno 1] _ssl.c:509: error:14090086:SSL
routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

O certificado parece ser reconhecido corretamente por todos os principais navegadores, mas o Python ainda não o valida.

Se possível, eu preferiria uma solução de instalação simples como a de instalar um pacote ou um script.

Eu fiquei um pouco surpreso em não ver o Comodo na lista padrão de CERs reconhecidos, todos os principais (5) navegadores aceitam, mas não o Ubuntu wget / python / ... (openssl, eu acho que é a causa). / p>     

por sorin 17.12.2013 / 10:26

1 resposta

2

Use o pacote Debian ca-certificates que irá incorporar (além de outros) todos os CA certificados que o Mozilla Firefox / Thunderbird / etc. usa.

Você pode usar o arquivo de certificado (todos os certificados em um, formatado pelo PEM) no Python da seguinte forma:

ssl_sock = ssl.wrap_socket(sock,  
                           ca_certs="/etc/ssl/certs/ca-certificates.crt",  
                           cert_reqs=ssl.CERT_REQUIRED  
                          )
    
por Dominik 17.12.2013 / 12:00