Ste*_*fan 5 python ssl https httplib python-2.7
默认情况下,Python 的httplib .HTTPSConnection 使用系统的信任存储来验证 HTTPS 证书。(如何)是否可以设置不同的 CA 列表来进行验证,替换默认的 CA 列表?
我试图设置httplib 使用的SSLContext(见下文),但这只会添加给定文件中的证书;如果需要,它不会阻止验证器从系统存储中加载更多证书。
c = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
c.load_verify_locations(cafile='mozillacerts.pem', capath=None)
conn = httplib.HTTPSConnection(domain, port, context=c)
Run Code Online (Sandbox Code Playgroud)
要明确:如果无法使用给定文件中的证书验证信任路径,我希望验证失败。
(为此,我在 Debian 8 上使用 Python 2.7.11。)
看来这实际上不可能,我们通过使用 Python- requests “解决”了这个问题,因为它允许我们设置 CA 捆绑包。
requests.get('https://' + domain, verify='mozillacerts.pem')
Run Code Online (Sandbox Code Playgroud)
另请参阅:请求文档:SSL 证书验证
归档时间: |
|
查看次数: |
4492 次 |
最近记录: |