如何在请求中添加可选CA捆绑包

时间:2016-01-14 16:40:23

标签: python ssl python-requests

我需要从python访问一个API,它在进行TLS连接时不提供正确的bundle。我发现work-around有效,但我认为它不稳定。

假设api.example.org是使用来自CA1的证书的破坏设置,并且www.example.org是正确的设置,但其CA2的证书。

以下作品

requests.get('https://api.example.org/', verify='/path/to/CA1_BUNDLE')
requests.get('https://www.example.org/')

但这不起作用: -

requests.get('https://www.example.org/', verify='/path/to/CA1_BUNDLE')

意味着如果verify='/path/to/CA1_BUNDLE'存在,它只会针对该特定CA进行验证,而不会验证我系统中安装的任何其他CA.如果api.example.org修复了他们的垃圾,并从不同的CA获得证书,那么我的生产代码将停止工作。

在进行验证时,这是告诉请求使用系统证书以及 /path/to/CA1_BUNDLE的方法吗?

PS:请不要建议我使用verify=false。这是2016年而不是2008年。

更新:我不再需要解决方案,有问题的网站修复了他们的垃圾。然而,一个优雅的解决方案仍然会因好奇心而受到赞赏。

0 个答案:

没有答案