当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python ssl.SSLContext.check_hostname用法及代码示例


用法:

SSLContext.check_hostname

是否匹配 SSLSocket.do_handshake() 中对等证书的主机名。上下文的 verify_mode 必须设置为 CERT_OPTIONALCERT_REQUIRED ,并且您必须将 server_hostname 传递给 wrap_socket() 才能匹配主机名。启用主机名检查会自动将 verify_modeCERT_NONE 设置为 CERT_REQUIRED 。只要启用了主机名检查,就不能将其设置回CERT_NONEPROTOCOL_TLS_CLIENT 协议默认启用主机名检查。对于其他协议,必须明确启用主机名检查。

例子:

import socket, ssl

context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
context.verify_mode = ssl.CERT_REQUIRED
context.check_hostname = True
context.load_default_certs()

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = context.wrap_socket(s, server_hostname='www.verisign.com')
ssl_sock.connect(('www.verisign.com', 443))

3.4 版中的新函数。

在 3.7 版中更改:verify_mode现在自动更改为CERT_REQUIRED当启用主机名检查并且verify_modeCERT_NONE.以前相同的操作会失败ValueError.

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 ssl.SSLContext.check_hostname。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。