Thanks Jeffrey,

 

The example code was the result of some testing I was doing – the PyPi system 
URL (commented out) is where I am seeing this behavior.

 

This behavior is observed prom a packaged application using Pyinstaller to 
generate the final executable that is installed on the consumers system.

 

Thanks.

 

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! ™

Risk always exists, but trust must be earned and awarded.™ 

https://businesscyberguardian.com/ 

Email: d...@businesscyberguardian.com

Tel: +1 978-696-1788

 

 

From: Jeffrey Walton <noloa...@gmail.com> 
Sent: Saturday, December 28, 2024 8:49 AM
To: d...@businesscyberguardian.com; curl-users - the curl tool 
<curl-users@lists.haxx.se>
Subject: Re: Strange behavior processing SSL certs between a Windows 11 system 
running Python 3.13.1 and a Windows 10 system running Python 3.8.5

 

 

 

On Sat, Dec 28, 2024 at 8:34 AM Dick Brooks via curl-users 
<curl-users@lists.haxx.se <mailto:curl-users@lists.haxx.se> > wrote:

[...]

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 <http://pypi.org> 

----> Issuer :  CN=GlobalSign Atlas R3 DV TLS CA 2024 Q2

----> SourceCertificateComplete :  [(('Subject', 'CN=pypi.org <http://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) 

 

It is not clear (to me) what your complaint is. You did not state it other than 
to say you experienced unexpected behavior.

 

To state the obvious: the dumps you are showing are for the host at pypi.org 
<http://pypi.org> . The code you are showing is hardcoded for the host 
softwareassuranceguardian.com <http://softwareassuranceguardian.com> .

 

You can use OpenSSL to dump the web server's certificate. Maybe that will give 
you a good baseline.

 

$ openssl s_client -connect softwareassuranceguardian.com:443 
<http://softwareassuranceguardian.com:443>  -servername 
softwareassuranceguardian.com <http://softwareassuranceguardian.com>  | openssl 
x509 -text -noout
Connecting to 18.220.83.76
depth=0 CN=softwareassuranceguardian.com <http://softwareassuranceguardian.com> 
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN=softwareassuranceguardian.com <http://softwareassuranceguardian.com> 
verify error:num=21:unable to verify the first certificate
verify return:1
depth=0 CN=softwareassuranceguardian.com <http://softwareassuranceguardian.com> 
verify return:1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 4721225938421497953 (0x418529fa13f94061)
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., 
OU=http://certs.godaddy.com/repository/, CN=Go Daddy Secure Certificate 
Authority - G2
        Validity
            Not Before: Apr 25 07:09:28 2024 GMT
            Not After : Apr 23 11:58:54 2025 GMT
        Subject: CN=softwareassuranceguardian.com 
<http://softwareassuranceguardian.com> 
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:b8:f8:06:85:57:b7:a6:50:22:5e:90:a2:d5:23:
                    f9:6e:c0:aa:e4:da:ba:66:9e:1d:38:fc:e4:98:ab:
                    93:59:33:1e:93:5e:c5:e5:c7:e4:c4:91:71:ce:4b:
                    40:44:65:36:0b:0e:32:ac:b8:c5:68:e5:db:ce:ce:
                    33:02:3c:32:ce:06:27:1c:f0:79:0e:a7:41:de:7b:
                    c9:d6:be:0d:ed:6a:37:61:7c:8b:a2:b2:8f:6b:da:
                    66:70:3a:13:a8:d4:77:ca:cb:d4:9e:84:4a:d8:7f:
                    54:19:fd:74:38:d7:b8:47:41:f1:0d:18:9a:75:6d:
                    43:16:ee:58:b5:95:7d:b0:8c:05:99:33:4f:ce:23:
                    aa:30:1d:76:fb:5f:59:11:d2:57:d8:43:8c:21:9a:
                    28:85:1c:e7:2f:2e:5e:88:a3:1b:09:b5:8a:4e:26:
                    5a:6d:8c:7e:9b:8a:0c:5c:6a:b6:b4:4d:4c:ef:ed:
                    91:3c:0d:4c:06:69:3e:fa:ad:20:10:25:47:f7:dd:
                    73:9f:37:74:12:20:65:d6:cd:d3:3c:9b:94:95:97:
                    e1:2d:ea:97:36:fd:f6:ff:40:ba:59:3b:c9:a6:e2:
                    e5:60:e4:03:e5:a4:24:32:9d:88:a0:4c:03:3c:0f:
                    3c:ca:e0:29:bc:2a:f7:fe:b5:b2:47:9f:0f:0d:3b:
                    61:d3
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 CRL Distribution Points: 
                Full Name:
                  URI:http://crl.godaddy.com/gdig2s1-20551.crl
            X509v3 Certificate Policies: 
                Policy: 2.16.840.1.114413.1.7.23.1
                  CPS: http://certificates.godaddy.com/repository/
                Policy: 2.23.140.1.2.1
            Authority Information Access: 
                OCSP - URI:http://ocsp.godaddy.com/
                CA Issuers - 
URI:http://certificates.godaddy.com/repository/gdig2.crt
            X509v3 Authority Key Identifier: 
                40:C2:BD:27:8E:CC:34:83:30:A2:33:D7:FB:6C:B3:F0:B4:2C:80:CE
            X509v3 Subject Alternative Name: 
                DNS:softwareassuranceguardian.com 
<http://softwareassuranceguardian.com> , DNS:www.softwareassuranceguardian.com 
<http://www.softwareassuranceguardian.com> 
            X509v3 Subject Key Identifier: 
                5F:9D:0A:95:E9:34:3A:90:CA:D5:70:40:1C:4F:86:FE:6A:C4:A7:7A
            CT Precertificate SCTs: 
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : 4E:75:A3:27:5C:9A:10:C3:38:5B:6C:D4:DF:3F:52:EB:
                                1D:F0:E0:8E:1B:8D:69:C0:B1:FA:64:B1:62:9A:39:DF
                    Timestamp : Apr 25 07:09:29.840 2024 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:45:02:21:00:82:F6:7D:A9:12:F6:01:C1:61:59:BE:
                                B5:9C:C2:EA:76:29:7E:58:1C:02:6A:C0:4E:B5:AD:38:
                                0E:A1:CF:2E:02:02:20:42:C1:5A:DC:82:EB:A7:06:2B:
                                4E:1D:A6:3B:D8:5B:58:C5:C0:FE:47:B1:E9:52:1E:97:
                                A2:D1:08:7E:B2:2E:A2
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : 7D:59:1E:12:E1:78:2A:7B:1C:61:67:7C:5E:FD:F8:D0:
                                87:5C:14:A0:4E:95:9E:B9:03:2F:D9:0E:8C:2E:79:B8
                    Timestamp : Apr 25 07:09:29.996 2024 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:44:02:20:20:21:15:32:E6:4C:23:F7:F2:1E:CC:9B:
                                15:5E:96:B7:C5:5E:D7:2C:1D:A8:9C:F8:2A:A1:25:40:
                                A2:2F:72:A3:02:20:1F:12:62:C3:20:E4:FE:0A:6B:4F:
                                4A:BD:75:90:79:4A:BB:F4:A0:61:4C:C8:78:2C:45:B5:
                                3F:A1:E6:8B:AB:06
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : CC:FB:0F:6A:85:71:09:65:FE:95:9B:53:CE:E9:B2:7C:
                                22:E9:85:5C:0D:97:8D:B6:A9:7E:54:C0:FE:4C:0D:B0
                    Timestamp : Apr 25 07:09:30.095 2024 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:44:02:20:3D:6A:C6:15:00:E4:0A:F6:82:68:E0:C9:
                                6A:F3:D6:6B:08:26:A9:EB:6B:5C:2D:B5:83:9E:F0:D4:
                                2B:B9:A2:1F:02:20:0F:92:85:20:FD:F6:A0:98:38:B3:
                                07:26:DB:F1:67:EB:CD:5B:3A:75:44:6E:60:D8:34:77:
                                7E:9C:59:BA:9C:18
    Signature Algorithm: sha256WithRSAEncryption
    Signature Value:
        6c:7e:67:10:ec:ec:a3:ed:7f:83:65:ec:fc:4b:9c:3d:d6:dd:
        6c:35:1d:bb:de:fc:36:f8:7d:47:48:df:06:2e:94:50:53:0f:
        15:bb:bd:6c:3e:3a:dd:cc:70:c0:a3:dc:00:4e:dc:fa:4d:ba:
        3f:5b:2c:61:9e:8d:c5:74:8b:f7:85:ac:b4:cd:0c:b9:15:91:
        3d:8d:ef:8d:59:2b:91:a2:63:e0:78:bd:19:8d:ad:37:2f:a2:
        fd:1e:1d:77:8d:98:01:ff:6e:00:0c:f4:70:b4:e2:dd:bb:57:
        6e:61:ac:87:2b:02:bb:e9:1a:6a:6f:0e:82:b7:d0:a4:5c:38:
        bf:76:74:29:82:a3:32:d9:18:83:c9:21:4c:44:9d:c9:cb:fc:
        f1:0e:5e:da:3d:cd:69:1c:8a:ad:44:df:f2:d4:38:93:7b:ca:
        61:49:3a:12:1c:84:71:2d:a3:db:d1:c0:09:9f:b7:ca:87:d1:
        1a:a7:33:86:32:23:8f:15:9b:69:ed:38:3e:93:88:20:03:14:
        22:84:b6:41:8f:a7:a3:78:30:40:82:53:2d:98:62:d4:38:42:
        56:44:a4:cc:2b:a7:c7:f4:7c:81:12:f1:af:ce:66:3b:da:3c:
        8f:67:15:a9:99:38:35:27:1f:65:85:88:23:96:d7:52:d7:66:
        44:aa:ae:75

 

Jeff

-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-users
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to