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

6

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个回答

5

我认为文档中已经清楚地说明了:SSL证书验证

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

verify选项用于启用(默认)或禁用服务器证书的验证。它可以采用True或False或包含受信任CA的文件名。如果没有给出(未记录?),它将从OpenSSL中获取默认的CA路径/文件,在UNIX上通常有效(除了可能的OS X),而在Windows上不起作用。


我要打包我的pem文件。然后我可以执行以下哪个操作:verify=bundledfile.pem还是verify=path/to/bundledfile.pem? - Jase Villam
可能与打开文件的方式相同:如果需要指定绝对路径,请使用它,但如果相对路径足够,则无需指定绝对路径。 - Steffen Ullrich

0

如果 *.pem 文件有这个部分

-----BEGIN PRIVATE KEY-----
....
-----END PRIVATE KEY-----

然后使用cert


如果不是,那么使用verify


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接