Hello Everyone,
I'm Dick Brooks, the lead software engineer at Business Cyber Guardian. I've encountered some unexpected behavior between two systems using the exact same piece of code - any ideas why this might be happening: FROM ROADWARRIOR (Win 11) (shows the signing certificate info) ----> ServerURL : https://pypi.org/project/sag-reader/1.0.4/#files ----> Subject : CN=GlobalSign Atlas R3 DV TLS CA 2024 Q2 ----> Issuer : CN=GlobalSign ----> SourceCertificateComplete : [(('Subject', 'C=BE, O=GlobalSign nv-sa, CN=GlobalSign Atlas R3 DV TLS CA 2024 Q2'), ('Issuer', 'OU=GlobalSign Root CA - R3, O=GlobalSign, CN=GlobalSign'), ('Version', '2'), ('Serial Number', '00:80:4e:00:3a:27:2b:c5:18:e3:4d:a4:b1:fc:9b:78:33:'), ('Signature Algorithm', 'sha256WithRSAEncryption'), ('Start Date', '2024-01-17 03:24:32 GMT'), ('Expire Date', '2026-01-17 00:00:00 GMT') FROM WARP9 (Win 10) (shows the issued SSL Certificate subject info - the leaf node) ----> ServerURL : https://pypi.org/project/sag-reader/1.0.4/#files ----> Subject : CN=pypi.org ----> Issuer : CN=GlobalSign Atlas R3 DV TLS CA 2024 Q2 ----> SourceCertificateComplete : [(('Subject', 'CN=pypi.org'), ('Issuer', 'C=BE, O=GlobalSign nv-sa, CN=GlobalSign Atlas R3 DV TLS CA 2024 Q2'), ('Version', '2'), ('Serial Number', '01:06:a3:43:b1:24:03:82:30:1a:c9:27:d9:3f:23:4b:'), ('Signature Algorithm', 'sha256WithRSAEncryption'), ('Start Date', '2024-04-23 04:22:05 GMT'), ('Expire Date', '2025-05-25 04:22:04 GMT') NOTE: I receive the same results on both machines when I run the code interactively (the win 10 results): import pycurl, certifi curl = pycurl.Curl() curl.setopt(pycurl.CAINFO, certifi.where()) curl.setopt(pycurl.SSL_VERIFYPEER, 1) curl.setopt(pycurl.SSL_VERIFYHOST, 2) curl.setopt(pycurl.OPT_CERTINFO, 1) curl.setopt(pycurl.NOBODY, 1) #ServerURL="https://pypi.org/project/sag-reader/" ServerURL="https://softwareassuranceguardian.com/SAG_CTR" curl.setopt(pycurl.URL, ServerURL) # https://pypi.org/project/sag-reader/ buffer = curl.perform_rb() ServerCert = curl.getinfo(pycurl.INFO_CERTINFO) certinfo = ServerCert[0] print(certinfo) certinfo_dict = dict() for entry in certinfo: certinfo_dict[entry[0]] = entry[1] print(certinfo_dict[entry[0]]) for item in certinfo_dict['Subject'].split(", "): Cert_Subject = item print("ITEM: ", item) if item.find("=") != -1 : fieldname = item.split("=")[0].strip() fieldvalue = item.split("=")[1] if fieldname == "CN" : CN_Name = fieldvalue print("CN= ", CN_Name) Thanks, Dick Brooks Active Member of the CISA Critical Manufacturing Sector, Sector Coordinating Council - A Public-Private Partnership <https://reliableenergyanalytics.com/products> Never trust software, always verify and report! T Risk always exists, but trust must be earned and awarded.T <https://businesscyberguardian.com/> https://businesscyberguardian.com/ Email: d...@businesscyberguardian.com Tel: +1 978-696-1788
-- Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-users Etiquette: https://curl.se/mail/etiquette.html