小编Mxn*_*gls的帖子

为什么我收到“无法获取本地颁发者证书 (_ssl.c:997)”

当向特定 URL 发送请求时,我收到 SSL 错误,但我不确定原因。首先请查看我收到的错误消息:

requests.exceptions.SSLError: HTTPSConnectionPool(host='dicmedia.korean.go.kr', port=443): 超过最大重试次数,网址为:/multimedia/naver/2016/40000/35000/14470_byeon-gyeong.wav(由以下原因引起) SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:997)')))

我已经尝试过:

  • https://github.com/Unbabel/COMET/issues/29(这似乎与 Python 收到的有关使用特定 SSL 证书的内部更新有关(这里不是专家)
  • 下载有问题的证书并直接链接到它verify="private/etc/ssl/certs"

老实说,我不知道为什么会收到此错误。正如错误消息本身表明的那样,相关服务器似乎可以以某种方式获取我的本地证书。该脚本一直有效到一周前。在那之前我没有更新Python。现在我使用从官方网站下载的python 3.10.2。

我不想设置,verify=False因为这只是跳过验证过程,让我很容易受到攻击,因为许多人已经指出了不同的问题。除此之外,我无法解决该错误确实令我困扰。

任何帮助深表感谢。具体要求见:

import requests

def request(url):
    response = requests.get(url, verify="/private/etc/ssl/certs")
    print(response)

request("https://dicmedia.korean.go.kr/multimedia/naver/2016/40000/35000/14470_byeon- 
gyeong.wav")
Run Code Online (Sandbox Code Playgroud)

python openssl

10
推荐指数
2
解决办法
4万
查看次数

为什么使用 [i:i+1] 而不是 [i]?

为什么我们不能在这里使用[i]代替[i:i+1]?(第 10 行)。仅供参考:此代码是此处描述的问题的解决方案的一部分:https : //www.codewars.com/kata/57814d79a56c88e3e0000786/train/python 但它更像是一个普遍的问题!我只[i]在我的类似解决方案中使用过,但它给我带来了索引错误。

def decrypt(text, n):
    if text in ("", None):
        return text

    ndx = len(text) // 2

    for i in range(n):
        a = text[:ndx]
        b = text[ndx:]
        text = "".join(b[i:i+1] + a[i:i+1] for i in range(ndx + 1))
    return text



def encrypt(text, n):
    for i in range(n):
        text = text[1::2] + text[::2]
    return text
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
74
查看次数

标签 统计

python ×2

openssl ×1