用法:
ssl.match_hostname(cert, hostname)
验证
cert
(以解码格式返回ssl.SSLSocket.getpeercert) 匹配给定的hostname
.应用的规则是用于检查 HTTPS 服务器身份的规则,如RFC 2818,RFC 5280和RFC 6125.除了HTTPS,这个函数应该适合在FTPS、IMAPS、POPS等各种基于SSL的协议中检查服务器的身份。CertificateError
在失败时引发。成功时,该函数不返回任何内容:>>> cert = {'subject': ((('commonName', 'example.com'),),)} >>> ssl.match_hostname(cert, "example.com") >>> ssl.match_hostname(cert, "example.org") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/py3k/Lib/ssl.py", line 130, in match_hostname ssl.CertificateError: hostname 'example.org' doesn't match 'example.com'
3.2 版中的新函数。
在 3.3.3 版中更改:现在函数如下RFC 6125,第 6.4.3 节,并且既不匹配多个通配符(例如
*.*.com
或者*a*.example.org
) 也不是国际化域名 (IDN) 片段内的通配符。 IDN A-labels 例如www*.xn--pthon-kva.org
仍受支持,但x*.python.org
不再匹配xn--tda.python.org
.在 3.5 版中更改:现在支持在证书的 subjectAltName 字段中匹配 IP 地址。
在 3.7 版中更改:该函数不再用于 TLS 连接。主机名匹配现在由OpenSSL 执行
当通配符是该段中最左边和唯一的字符时,允许通配符。不再支持像
www*.example.com
这样的部分通配符。自 3.7 版起已弃用。
相关用法
- Python ssl.SSLContext.check_hostname用法及代码示例
- Python ssl.OPENSSL_VERSION_NUMBER用法及代码示例
- Python ssl.SSLContext.session_stats用法及代码示例
- Python ssl.enum_certificates用法及代码示例
- Python ssl.SSLSocket.getpeercert用法及代码示例
- Python ssl.cert_time_to_seconds用法及代码示例
- Python ssl.SSLContext.get_ciphers用法及代码示例
- Python sklearn.cluster.MiniBatchKMeans用法及代码示例
- Python scipy.ndimage.binary_opening用法及代码示例
- Python scipy.signal.windows.tukey用法及代码示例
- Python scipy.stats.mood用法及代码示例
- Python str.isidentifier用法及代码示例
- Python sklearn.metrics.fbeta_score用法及代码示例
- Python scipy.fft.ihfftn用法及代码示例
- Python scipy.stats.normaltest用法及代码示例
- Python scipy.ndimage.convolve1d用法及代码示例
- Python scipy.stats.arcsine用法及代码示例
- Python scipy.interpolate.UnivariateSpline.antiderivative用法及代码示例
- Python scipy.linalg.hadamard用法及代码示例
- Python socket.create_server用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 ssl.match_hostname。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。