请求:证书和验证之间有什么区别?

时间:2014-04-16 19:55:03

标签: python ssl ssl-certificate python-requests pyinstaller

证书和验证之间有什么区别?

来自文档:

验证 - (可选)如果为True,将验证SSL证书。还可以提供CA_BUNDLE路径。 cert - (可选)if String,ssl客户端证书文件(.pem)的路径。如果Tuple,('cert','key')配对。

这是否意味着我可以执行以下操作:

CA_BUNDLE='path/to/.pem'
requests.get(url=google.com, verify= CA_BUNDLE)

Cert='path/to/.pem'
requests.get(url=google.com, cert=Cert)

他们看起来都像做同样的事情。除了验证可以禁用ssl验证。

我正在尝试使用PYinstaller将代码编译为exe。我正在使用certifi模块,我看到已经有一个cacert.pem文件,但我想我仍然需要将它与我的代码捆绑在一起。

在我的代码中,我是修改...验证还是证书?...带有cacert.pem的路径或只是'cacert.pem'?

1 个答案:

答案 0 :(得分:1)

我认为文档中明确说明了这一点:http://www.python-requests.org/en/latest/user/advanced/#ssl-cert-verification

选项cert是向您发送自己的证书,例如使用客户端证书对服务器进行身份验证。它需要一个证书文件,如果密钥与证书不在同一个文件中,那么密钥文件也是如此。

选项verify用于启用(默认)或禁用服务器证书的验证。它可以采用True或False或包含受信任CA的文件名。如果没有给出我认为(没有记录?)它将采用OpenSSL的默认CA路径/文件,它通常在UNIX上运行(OS X除外),而不是在Windows上运行。