Skip to content

Commit ca375dd

Browse files
committed
Try using 'SECURITY_FLAG_IGNORE_CERT_CN_INVALID' for Windows hostname verification disabling
1 parent fe4f660 commit ca375dd

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/truststore/_windows.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ class CERT_CHAIN_ENGINE_CONFIG(Structure):
212212
CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS = 0x00000F00
213213
CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG = 0x00008000
214214
CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG = 0x00004000
215+
SECURITY_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000
215216
AUTHTYPE_SERVER = 2
216217
CERT_CHAIN_POLICY_SSL = 4
217218
FORMAT_MESSAGE_FROM_SYSTEM = 0x00001000
@@ -443,6 +444,10 @@ def _get_and_verify_cert_chain(
443444
)
444445
ssl_extra_cert_chain_policy_para.dwAuthType = AUTHTYPE_SERVER
445446
ssl_extra_cert_chain_policy_para.fdwChecks = 0
447+
if ssl_context.check_hostname is False:
448+
ssl_extra_cert_chain_policy_para.fdwChecks = (
449+
SECURITY_FLAG_IGNORE_CERT_CN_INVALID
450+
)
446451
if server_hostname:
447452
ssl_extra_cert_chain_policy_para.pwszServerName = c_wchar_p(server_hostname)
448453

@@ -452,8 +457,6 @@ def _get_and_verify_cert_chain(
452457
)
453458
if ssl_context.verify_mode == ssl.CERT_NONE:
454459
chain_policy.dwFlags |= CERT_CHAIN_POLICY_VERIFY_MODE_NONE_FLAGS
455-
if not ssl_context.check_hostname:
456-
chain_policy.dwFlags |= CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG
457460
chain_policy.cbSize = sizeof(chain_policy)
458461

459462
pPolicyPara = pointer(chain_policy)

0 commit comments

Comments
 (0)