When I run python code in mac os, I meet a certificate verify failed error like this ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056). This error confused me a lot of time. And after googling the error, I finally find the solution to fix it, below are the steps.
1. Fix Certificate Verify Failed: Unable To Get Local Issuer Certificate Error Steps.
- Open mac os finder, then click Applications —> Python 3.7 folder to expand it. Your python may have a different version. You can find the Install Certificates.command program in the Python 3.7 folder.

- Double click the Install Certificates.command file to run it. It will open another popup terminal window and show below command execution output text.
Last login: Mon Jun 24 15:53:52 on ttys002 /Applications/Python\ 3.7/Install\ Certificates.command ; exit; songs-MacBook-Pro:~ songzhao$ /Applications/Python\ 3.7/Install\ Certificates.command ; exit; -- pip install --upgrade certifi Requirement already up-to-date: certifi in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (2019.6.16) -- removing any existing file or link -- creating symlink to certifi certificate bundle -- setting permissions -- update complete logout Saving session... ...copying shared history... ...saving history...truncating history files... ...completed. [Process completed]
- Close the popup window when the command runs completely successfully. Now run the python code again, the Certificate Verify Failed Error will disappear.
How to fix a similar thing on a windows machine? I am trying to install some packages and it’s giving me the same error.
My python script use urllib.request package to retrieve a CSV file from a website. And I run the script on macOS Mojave with Python 3.7.
The CSV file can be retrieved by both HTTPS and HTTP protocol URL, and when I use HTTPS protocol URL, this error occurred. And when I use HTTP protocol URL the error disappear.
I know the HTTP protocol does not check the SSL certificate, maybe this avoid the error occurred with HTTPS protocol. So I found this article and the solution can fix my problem.
But I do not know why it behaves different between HTTP and HTTPS protocol. I really want to find what does the Install\ Certificates.command program do at the back-end when I run it.
Can anybody give me an answer? Thanks a lot.
Thank you so much for this easy yet super helpful fix.
oh my god such a simple fix for such a complicated error message! XD your guide really helped a lot. thank you so much!