我该如何修复 SSL 错误,似乎没有任何效果?

How can I fix SSL error, nothing seems to work?

我正要用 Nasa API 做一些测试,看看它是否有效,但每次我 运行 代码时都会收到 SSL 错误。我尝试提供 SSL 上下文并设置 verify=False,但似乎没有任何效果。

请求如下:

with urllib.request.urlopen(url=apod["hdurl"], context=ctx) as u, \
    open(filename, 'wb') as f:
        f.write(u.read())

在请求上面,我已经定义了上下文:

ctx = ssl.create_default_context()
    ctx.check_hostname = False
    ctx.verify_mode = ssl.CERT_NONE

因为我在 MacOS 上,所以我也尝试过 Applications > Python 3.8 > Install certificates 命令,但它似乎不起作用。 我在想我的 Python 解释器可能出了点问题。

此外,这是我得到的异常:

requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1124)

似乎图书馆在发送请求时遇到了问题,如果我去:

nasa = nasapy.Nasa(key=key)
nasa.picture_of_the_day()

我收到相同的 SSL 证书错误。我该如何解决这个问题?

非常感谢帮助!

我修复了它,我不得不进入库文件 venv/bin/api.py 并在请求所在的库代码中设置 verify=False.

现在有效。