请求:cert和verify有什么区别?
cert和verify有什么区别呢?
根据文档的解释:
verify – (可选)如果设置为True,SSL证书会被验证。你也可以提供一个CA_BUNDLE的路径。
cert – (可选)如果是字符串,表示SSL客户端证书文件的路径(.pem格式)。如果是元组,格式为(‘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)
这两者看起来做的事情是一样的,唯一的区别是verify可以关闭SSL验证。
我正在使用PYinstaller把我的代码打包成exe文件。我使用的certifi模块已经有一个cacert.pem文件,但我想我还是得把它和我的代码一起打包。
在我的代码中,我是要修改...verify还是cert?...用cacert.pem的路径,还是直接用'cacert.pem'?
2 个回答
0
如果这个 *.pem
文件里有这一部分内容
-----BEGIN PRIVATE KEY-----
....
-----END PRIVATE KEY-----
那么就用 cert
。
如果没有这一部分内容,那就用 verify
。
5
我觉得文档里已经说得很清楚了:SSL证书验证
选项 cert
是用来发送你自己的证书的,比如说用客户端证书来验证你自己对服务器的身份。使用这个选项时,你需要一个证书文件,如果证书和密钥不在同一个文件里,还需要一个密钥文件。
选项 verify
是用来开启(默认)或关闭对服务器证书的验证的。它可以设置为 True 或 False,或者是一个包含可信任CA的文件名。如果没有提供这个选项,我觉得(可能没有文档说明?)它会使用 OpenSSL 的默认CA路径/文件,这通常在 UNIX 系统上有效(可能在 OS X 上不太行),而在 Windows 上则不太适用。