gpt4 book ai didi

Python 请求证书验证在 Windows 上失败

转载 作者:可可西里 更新时间:2023-11-01 10:41:48 24 4
gpt4 key购买 nike

我正在使用请求连接到 REST API,我有一个证书包和一个 .pem key ,我用它来验证我对 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:\stuff\admin\private\core_admin.pem'

'C:\stuff\admin\certs\'

软件版本:

  • Windows 10
  • python 3.6.3
  • 请求 2.18.4
  • openssl 1.0.2l

供引用,linux机器是:

  • Ubuntu 16.04.1 4.13.0-39-generic
  • python 3.6.3
  • 请求 2.18.4
  • openssl 1.0.2l

在代码中,我使用 pathlibs Path 来构建路径,这样我就可以在 linux 和 windows 之间来回切换,并且一切都可以在 linux 上运行。我想我只需要有关将我的证书放在哪里的指导。

最佳答案

在 Windows 上,您通常会将它们导入证书管理器(“开始”,然后“管理计算机证书”或“管理用户证书”,具体取决于您的范围)。这会将它们放在适当的位置。 Python 使用此证书库。

然而,requests 默认使用它自己的,但你可以绕过它。参见 SSL failure on Windows using python requests有关如何从那里继续的详细信息。

当心,这是一个很深的兔子洞。参见 https://github.com/kennethreitz/requests/issues/2966有关这方面的更多背景信息。

关于Python 请求证书验证在 Windows 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50743896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com