我使用请求连接到REST,我有一个证书包和一个.pem密钥,我用它来验证我是谁。我在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:\stuff\admin\private\core_admin.pem‘ ‘c:\\admin\certs\’
软件版本:
供参考的linux机器是:
在代码中,我使用路径库路径来构建路径,这样我就可以在linux和windows之间来回切换,所有东西都可以在linux上工作。我想我只是需要在哪里放置我的证书的指导。
发布于 2019-04-25 18:15:47
在Windows上,您通常会将它们导入证书管理器(“开始”,然后根据您的范围“管理计算机证书”或“管理用户证书”)。把它们放到合适的位置。Python使用此证书存储。
但是,请求默认使用自己的请求,但您可以绕过它。有关如何从那里继续的详细信息,请参阅SSL failure on Windows using python requests。
小心,这是个深兔子洞。有关这方面的更多背景信息,请参见https://github.com/kennethreitz/requests/issues/2966。
发布于 2021-10-13 12:09:10
默认情况下,不使用默认的,而是使用https://pypi.org/project/certifi/提供的PEM文件。
若要添加新的CA根证书,请执行以下任一操作:
python -c "import certifi ; print(certifi.where())"
中的位置,将CA根证书添加到该文件中。https://stackoverflow.com/questions/50743896
复制相似问题