FreeBSD, Python and SSL certificate validation
May 22, 2015
May 22, 2015
When not explicitely giving a SSL certificate file to Python request
,
it will expect the system certificates to be in /etc/ssl/cert.pem
.
However, in FreeBSD, they are in /usr/local/etc/ssl/cert.pem
,
resulting in the following error:
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)>
The quick and dirty fix for this was the following:
ln -s /usr/local/etc/ssl/cert.pem /etc/ssl/cert.pem
Now Python can find the system certificates, and we donโt need to
explicitely give the certificate file to request
when doing the
request (espacially useful when request
is used by another module that
donโt allow to customize the certificates).