SSL证书通过在和之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape Communication公司设计开发。该安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。由于SSL技术已建立到所有主要的和程序中,因此,仅需安装就可以该功能了)。即通过它可以激活SSL协议,实现数据信息在和服务器之间的加密传输,可以防止数据信息的泄露。保证了双方传递信息的安全性,而且用户可以通过验证他所访问的网站是否是真实可靠。
Requests可以为HTTPS请求验证SSL证书,就像web浏览器一样。要想检查某个主机的SSL证书,你可以使用 verify 参数:
requests.get('https://kennethreitz.com', verify=True)
在该域名上我没有设置SSL,所以失败了。但Github设置了SSL:
requests.get('https://github.com', verify=True)
如果你将 verify 设置为False,Requests也能忽略对SSL证书的验证
requests.get('https://kennethreitz.com', verify=False)
默认情况下, verify 是设置为True的。选项 verify 仅应用于主机证书。
你也可以指定一个本地证书用作客户端证书,可以是单个文件(包含密钥和证书)或一个包含两个文件路径的元组:
requests.get('https://kennethreitz.com', cert=('/path/server.crt', '/path/key'))
如果你指定了一个错误路径或一个无效的证书:
requests.get('https://kennethreitz.com', cert='/wrong_path/server.pem')SSLError: [Errno 336265225] _ssl.c:347: error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib