O que devo fazer para que o Python 2.7.9 não procure por certificados SSL no lugar certo no FreeBSD?

2

Eu tenho um sistema FreeBSD 10.0 e, alguns dias atrás, eu atualizei meu python27 port do Python 2.7.8 para o Python 2.7.9, que permitia a verificação SSL por padrão. Não é novidade que quebrou meus scripts Python existentes que se conectavam a servidores com certificados auto-assinados. Surpreendentemente, ele quebrou meus scripts que se conectavam a servidores com certificados SSL válidos.

Eu tenho /usr/local/etc/ssl/cert.pem (que é um link simbólico para /usr/local/share/certs/ca-root-nss.crt ) mas não /etc/ssl/cert.pem . Minha instalação do Python espera o último:

>>> ssl.get_default_verify_paths()
DefaultVerifyPaths(cafile=None,
                   capath=None,
                   openssl_cafile_env='SSL_CERT_FILE',
                   openssl_cafile='/etc/ssl/cert.pem',
                   openssl_capath_env='SSL_CERT_DIR',
                   openssl_capath='/etc/ssl/certs')

Eu trabalhei em torno disso criando um link simbólico apropriado, mas existe uma abordagem melhor? Se isso for necessário, ou isso é algo que deveria ter sido abordado pelo próprio porto?

(E eu poderia definir SSL_CERT_FILE no meu ambiente também, mas prefiro não ter que fazer isso o tempo todo.)

    
por jamesdlin 28.12.2014 / 17:58

2 respostas

3

O respectivo bug do FreeBSD é aqui . A correção adiciona links simbólicos:

ln -sf /usr/local/etc/ssl/cert.pem /etc/ssl/cert.pem
ln -sf /usr/local/etc/ssl/cert.pem /usr/local/openssl/cert.pem
    
por 04.01.2015 / 15:29
0

Eu tinha ca_root_nss , que fornece /usr/local/etc/ssl/cert.pem , mas não /etc/ssl/cert.pem , necessário para o python 2.7.9. Então acabei ligando o segundo ao primeiro. Não encontrei nenhuma referência a esse bug no link .

    
por 28.12.2014 / 23:56