zodalahtathi added the comment:
I think it does, when passing a context with ssl_context.verify_mode !=
ss.CERT_NONE, and when not setting the check_hostname parameter:
1. will_verify will be True
(https://hg.python.org/cpython/file/3.4/Lib/http/client.py#l1207)
2. check_hostname will be True too
(https://hg.python.org/cpython/file/3.4/Lib/http/client.py#l1209)
3. ssl.match_hostname will be called after the handshake in wrap_socket
(https://hg.python.org/cpython/file/3.4/Lib/http/client.py#l1230)
The following code shows the problem:
import http.client
import ssl
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
ssl_context.verify_mode = ssl.CERT_REQUIRED
ssl_context.check_hostname = False
https = http.client.HTTPSConnection("localhost", context=ssl_context)
print(https._check_hostname)
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue22959>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com