SSL错误,不安全的传统重新协商已禁用。

67
我正在运行一个Python代码,其中我需要从HTTPSConnectionPool(host='ssd.jpl.nasa.gov', port=443)获取一些数据。但是每次我尝试运行代码时都会出现以下错误。我使用的是MAC OS 12.1。
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='ssd.jpl.nasa.gov', port=443): Max retries exceeded with url: /api/horizons.api?format=text&EPHEM_TYPE=OBSERVER&QUANTITIES_[...]_ (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:997)')))

我真的不知道如何绕过这个问题。
12个回答

-1
对我来说,我将URL从https切换为http。 请注意,HTTP并不提供与HTTPS相同的安全级别。

2023年使用纯HTTP的合理理由非常少。 - undefined

-2

对我来说,当我将 Python 降级到 v3.10.8 时,它起作用了。

(如果您在 Docker 容器中遇到问题,请阅读下文)

在我的 Docker 镜像中,我使用的是 alpine-10,它使用的是 v3.10.9。由于我无法获得带有 v3.10.8 的 alpine 版本,因此我使用了 3.10.8-slim-bullseye。


Python版本只是一个误导:问题是由容器中所使用的OpenSSL版本引起的。Alpine比Debian早升级,但只要您使用任何带有OpenSSL 3或更高版本的Python版本,两者都会出现相同的行为。 - Chris Adams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接