-
-
Save marschhuynh/31c9375fc34a3e20c2d3b9eb8131d8f3 to your computer and use it in GitHub Desktop.
# install_certifi.py | |
# | |
# sample script to install or update a set of default Root Certificates | |
# for the ssl module. Uses the certificates provided by the certifi package: | |
# https://pypi.python.org/pypi/certifi | |
import os | |
import os.path | |
import ssl | |
import stat | |
import subprocess | |
import sys | |
STAT_0o775 = ( stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | |
| stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | |
| stat.S_IROTH | stat.S_IXOTH ) | |
def main(): | |
openssl_dir, openssl_cafile = os.path.split( | |
ssl.get_default_verify_paths().openssl_cafile) | |
print(" -- pip install --upgrade certifi") | |
subprocess.check_call([sys.executable, | |
"-E", "-s", "-m", "pip", "install", "--upgrade", "certifi"]) | |
import certifi | |
# change working directory to the default SSL directory | |
os.chdir(openssl_dir) | |
relpath_to_certifi_cafile = os.path.relpath(certifi.where()) | |
print(" -- removing any existing file or link") | |
try: | |
os.remove(openssl_cafile) | |
except FileNotFoundError: | |
pass | |
print(" -- creating symlink to certifi certificate bundle") | |
os.symlink(relpath_to_certifi_cafile, openssl_cafile) | |
print(" -- setting permissions") | |
os.chmod(openssl_cafile, STAT_0o775) | |
print(" -- update complete") | |
if __name__ == '__main__': | |
main() |
For reference, here is where this gist is coming from: https://github.com/python/cpython/blob/master/Mac/BuildScript/resources/install_certificates.command
i get an error that i dont have permission
Thanks :)
great! but apparently my certificate are in anaconda3 and I have the following error:
os.remove(openssl_cafile)
PermissionError: [Errno 1] Operation not permitted: 'anaconda3'
After 2 days of searching...this solved my issues, thank you!
thanks it worked :)
its nice but I have a error and i dont no how fix it:
-- pip install --upgrade certifi
Traceback (most recent call last):
File "C:/Users/flori/Downloads/ok.py", line 44, in
main()
File "C:/Users/flori/Downloads/ok.py", line 24, in main
subprocess.check_call([sys.executable,
File "C:\Users\flori\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 373, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['C:\Users\flori\AppData\Local\Programs\Python\Python39\pythonw.exe', '-E', '-s', '-m', 'pip', 'install', '--upgrade', 'certifi']' returned non-zero exit status 2.
this worked for me!
Thanks)
thanks a lot worked for me....
Thanks
thank you very very much. it works for me.
wickedly neat!
Thanks!! A lot, worked perfectly for me!
Thanks!! Works for me!!
Thank you!!
File "D:\PTest\ssl_certificate.py", line 29, in main
os.chdir(openssl_dir)
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'C:\Program Files\Common Files\SSL'
such folder is not there in my windows 11
Update:
Fixed it by creating a folder named SSL in C:\Program Files\Common Files\
I got the following errror:
Could not fetch URL https://pypi.org/simple/certifi/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/certifi/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)'))) - skipping
ERROR: Could not find a version that satisfies the requirement certifi (from versions: none)
ERROR: No matching distribution found for certifi
I'm in Windows 10. How to resolve this error? Thanks.
Thanks, it solves my problem!
Thanks! You'r the best!
Yes!! It runs! Thanks for that life saver!
perfect!! thanks
I use Win11, and first it didn't find the directory, so I created the folder 'C:\Program Files\Common Files\SSL' manually.
Then, I'm having this error - ideas?
Traceback (most recent call last):
File "C:...\certif.py", line 44, in
main()
File "C:...\certif.py", line 38, in main
os.symlink(relpath_to_certifi_cafile, openssl_cafile)
PermissionError: [WinError 5] Access is denied: '..\..\..\...\venv\lib\site-packages\certifi\cacert.pem' -> 'cert.pem'
Edit: I was too quick to post. It failed when running from PyCharm but then worked when running it via Powershell as admin
thank you
Thank you .. helped a lot
Thanks a lot !!
Ty
Just change this part to not get FileNotFound Error :
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'C:\Program Files\Common Files\ssl'
try:
os.chdir(openssl_dir)
except FileNotFoundError:
os.makedirs(openssl_dir)
os.chdir(openssl_dir)
Full Code :
# install_certifi.py
#
# sample script to install or update a set of default Root Certificates
# for the ssl module. Uses the certificates provided by the certifi package:
# https://pypi.python.org/pypi/certifi
import os
import os.path
import ssl
import stat
import subprocess
import sys
STAT_0o775 = ( stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR
| stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP
| stat.S_IROTH | stat.S_IXOTH )
def main():
openssl_dir, openssl_cafile = os.path.split(
ssl.get_default_verify_paths().openssl_cafile)
print(" -- pip install --upgrade certifi")
subprocess.check_call([sys.executable,
"-E", "-s", "-m", "pip", "install", "--upgrade", "certifi"])
import certifi
# change working directory to the default SSL directory
try:
os.chdir(openssl_dir)
except FileNotFoundError:
os.makedirs(openssl_dir)
os.chdir(openssl_dir)
relpath_to_certifi_cafile = os.path.relpath(certifi.where())
print(" -- removing any existing file or link")
try:
os.remove(openssl_cafile)
except FileNotFoundError:
pass
print(" -- creating symlink to certifi certificate bundle")
os.symlink(relpath_to_certifi_cafile, openssl_cafile)
print(" -- setting permissions")
os.chmod(openssl_cafile, STAT_0o775)
print(" -- update complete")
if __name__ == '__main__':
main()
Thank you!
Magic, ty. :o