Issue 36343: Certificate added to Win Store not available (original) (raw)

Created on 2019-03-18 11:40 by christian-intra2net, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Messages (6)

msg338198 - (view)

Author: Christian Herdtweck (christian-intra2net)

Date: 2019-03-18 11:40

I have created a self-signed certificate as my fake CA, used it to sign the certificate of my test server. I added the fake CA to the client (Windows 7) certificate store (System settings > Internet Settings > Content > Certificates), imported it there first only to "trusted root certificate authorities (translating from German "Vertrauenswürdige Stammzertifizierungsstellen" here), after failed tests to all tabs (including "own certificates", "intermediate certification authorities", but not the the "non-trusted issuers").

I can see my fake ca certificate in the lists in the windows settings, but querying the windows CA store through python (version 3.7), either through ssl.create_default_context().get_ca_certs() or ssl.enum_certificates(store) for store in ("CA", "ROOT", "MY") I only see some default builtin authorities (digicert, microsoft, comodo, verisign, etc).

This might be related to https://bugs.python.org/issue36011 . The related PR https://github.com/python/cpython/pull/11923 is now closed but I do not see the commit in master/3.7/feature-version branch. Was it dismissed?

I am aware there are options to add certificate files to SSL_CERT_DIR, but it is my understanding that python now uses the windows certificate store and that is where in my case the certificate should go.

msg338200 - (view)

Author: Christian Herdtweck (christian-intra2net)

Date: 2019-03-18 11:42

I should have added the behavioral result:

(1) opening my server's web (https, port 443) page using IE works fine without certificate questions/errors (2) creating a ssl-wrapped socket to the server on the same port (443) fails with a Certificat error

msg338330 - (view)

Author: Christian Herdtweck (christian-intra2net)

Date: 2019-03-19 08:53

A colleage motivated me to add some example data. Attached you will find a small sample program listing the certificates and trying to connect to my machine.

Output of the program: Text "fake" nowhere to be found :-(

Traceback (most recent call last): File "list_cas.py", line 88, in sys.exit(main()) File "list_cas.py", line 83, in main ssl_sock.connect((MY_SERVER, 443)) File "C:\Program Files (x86)\Python37-32\lib\ssl.py", line 1150, in connect self._real_connect(addr, False) File "C:\Program Files (x86)\Python37-32\lib\ssl.py", line 1141, in _real_connect self.do_handshake() File "C:\Program Files (x86)\Python37-32\lib\ssl.py", line 1117, in do_handshake self._sslobj.do_handshake() ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)

msg338332 - (view)

Author: Christian Herdtweck (christian-intra2net)

Date: 2019-03-19 08:58

Certificates (fake CA and the signed certificate) as well as 2 screenshots from the import process

msg338551 - (view)

Author: Steve Dower (steve.dower) * (Python committer)

Date: 2019-03-21 15:58

Yeah, this is a dup of . I'm not sure why the contributor withdrew their PR, but it seems that is what happened.

msg338556 - (view)

Author: Christian Herdtweck (christian-intra2net)

Date: 2019-03-21 16:27

Sorry, right, that is the issue I meant. Continuing there.

History

Date

User

Action

Args

2022-04-11 14:59:12

admin

set

github: 80524

2019-03-21 16:27:48

christian-intra2net

set

messages: +

2019-03-21 15:58:02

steve.dower

set

status: open -> closed

superseder: ssl.enum_certificates() regression
components: + Windows

nosy: + paul.moore, tim.golden, zach.ware
messages: +
resolution: duplicate
stage: resolved

2019-03-19 18:55:57

brett.cannon

set

nosy: + steve.dower

2019-03-19 08:58:44

christian-intra2net

set

files: + python-cert-problem.zip

messages: +

2019-03-19 08:53:13

christian-intra2net

set

files: + list_cas.py

messages: +

2019-03-18 11:42:24

christian-intra2net

set

messages: +

2019-03-18 11:40:20

christian-intra2net

create