我正在使用连接到REST API的请求,我有一个证书包以及一个.pem密钥,我用它来验证我使用API的人。我在我的Ubuntu机器上工作的证书和代码,所以我知道证书是好的。
我在Linux上设置这个问题时遇到了类似的问题,当我将这些证书放在etc / pki / tls / certs中时抛出异常。当我将这些证书移到etc / ssl / certs时,一切都运行得很好。
要清楚,我已经使用这些证书对目录进行了哈希处理,但老实说我不确定哈希的重要性是什么。
所以,我的问题是:我应该把这些证书放在Windows上?
以下是一段代码:
import requests
private_key = '\path\to\private\key.pem'
cert_bundle = '\path\to\bundle'
url = 'https://www.securedsite.com/api-entry'
session = requests.Session()
session.cert = private_key
session.verify = cert_bundle
try:
resp = session.post(url)
except:
# Exception
我目前拥有自己的证书,在Windows上:
' C:\东西\管理员\私人\ core_admin.pem'
' C:\东西\管理员\证书\'
软件版本:
供参考,linux机器是:
在代码中,我使用pathlibs Path来构建路径,以便我可以在linux和windows之间来回切换,一切都可以在linux上运行。我想我只需要在哪里放置我的证书。
答案 0 :(得分:0)
在Windows上,通常将它们导入到证书管理器中(“开始”,然后“管理计算机证书”或“管理用户证书”,具体取决于您的范围)。这样可以将它们放到适当的位置。 Python使用此证书存储。
但是,请求默认使用它自己的,但是您可以解决它。有关如何从那里继续的详细信息,请参见SSL failure on Windows using python requests。
当心,这是一个深深的兔子洞。有关更多背景信息,请参见https://github.com/kennethreitz/requests/issues/2966。