用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。