glanceclient.common.https 模块

class glanceclient.common.https.OpenSSLConnectionDelegator(*args, **kwargs)

基类: object

OpenSSL.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 的引用。