I am trying to get data from the web using python. I imported urllib.request package for it but while executing, I get error:
certificate verify failed: unable to get local issuer certificate (_ssl.c:1045)
- I am using Python 3.7 on Mac OS High Sierra.
- I am trying to get CSV file from: https://s3.amazonaws.com/assets.datacamp.com/production/course_1606/datasets/winequality-red.csv
When I changed the URL to 'http' - I am able to get data. But, I believe, this avoids checking SSL certificate.
So I checked on the internet and found one solution:
Run /Applications/Python\ 3.7/Install\ Certificates.command
This solved my problem. But I have no knowledge on SSL and the likes. Can you help me understand what it actually did to solve my issue.
If possible, please recommend me any good resource to learn about the security and certificates. I am new to this.
Thanks!
Note: I did go through the link - openssl, python requests error: "certificate verify failed"
My question differs from the one in link because, I want to know what actually happens when I install certifi
package or run Install\ Certificates.command
to fix the error. I have a poor understanding of securities.
pyopenssl
is a wrapper to this. 2. Didn't know ifrequests
usespyopenssl
at all, but faild to verify the certificate which results throwing the error. 3. Didn't knowCertificats.command
, assume update/install the needed Certificates,requests
needs. – Lotte