glanceclient.common.https 模块¶
- class glanceclient.common.https.OpenSSLConnectionDelegator(*args, **kwargs)¶
基类:
objectOpenSSL.SSL.Connection 的委托器。
提供一个额外的 ‘makefile’ 方法,httplib 需要它,而 OpenSSL.SSL.Connection 中没有。
注意:由于无法继承 OpenSSL.SSL.Connection,因此必须使用委托器。
- makefile(*args, **kwargs)¶
- class glanceclient.common.https.VerifiedHTTPSConnection(host, port=None, key_file=None, cert_file=None, cacert=None, timeout=None, insecure=False, ssl_compression=True)¶
基类:
HTTPSConnection扩展的 OpenSSL HTTPSConnection,用于增强 SSL 支持。
- 注意:此功能的大部分最终可以被
原生 Python 3.3 代码取代。
- CIPHERS = 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:eCDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS'¶
- connect()¶
使用 OpenSSL 库连接到 SSL 端口。
此方法还将每个连接的参数应用于连接。
- set_context()¶
设置 OpenSSL 上下文。
- glanceclient.common.https.do_verify_callback(connection, x509, errnum, depth, preverify_ok, host=None)¶
验证服务器的 SSL 证书。
这是一个独立函数而不是方法,以避免在回调函数持有 VerifiedHTTPSConnection 的引用时,出现关闭套接字的问题。
- glanceclient.common.https.host_matches_cert(host, x509)¶
验证证书是否匹配主机。
验证从 ‘host’ 收到的 x509 证书是否正确标识了我们正在连接的服务器,即证书的通用名称 (Common Name) 或主题备用名称 (Subject Alternative Name) 是否与 ‘host’ 匹配。
- glanceclient.common.https.to_bytes(s)¶
- glanceclient.common.https.verify_callback(host=None)¶
为 do_verify_callback 提供包装器。
我们使用 partial 来包装 ‘实际’ 的 verify_callback 函数,以便我们可以存储 host 值,而无需持有 VerifiedHTTPSConnection 的引用。