У меня API.crt хранится в windows диспетчере сертификатов -> Доверенные Root Центры сертификации. В списке отображается имя сертификата как 'localhost'
Когда я запускаю код ниже, он работает, когда я указываю путь к сертификату в функции load_verify_locations()
.
Но это не работает, когда я получаю сертификат от windows диспетчера сертификатов и предоставляю действительный сертификат. Пожалуйста, кто-нибудь может помочь мне в этом.
import wincertstore
import ssl
for storename in ("CA", "ROOT"):
with wincertstore.CertSystemStore(storename) as store:
for cert in store.itercerts(usage=wincertstore.SERVER_AUTH):
if cert.get_name() == 'localhost': #name of cert
mycert = cert.get_pem()
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
context.verify_mode = ssl.CERT_REQUIRED
context.load_verify_locations("C:/API.crt") ##Works if certificate is stored locally
context.load_verify_locations(mycert) ## Does not Works if certificate is passed.
Traceback (most recent call last):
File "test.py", line 14, in <module>
context.load_verify_locations(mycert) ## Does not Works if certificate is passed.
FileNotFoundError: [Errno 2] No such file or directory