gpt4 book ai didi

python - 使用 CNAME 时 Web 请求出现 SSL 错误

转载 作者:行者123 更新时间:2023-12-04 22:38:51 37 4
gpt4 key购买 nike

如何修复由 CNAME DNS 记录引起的 SSL 错误?

我有一个托管在 AWS 上的 API,可通过 https://sd098fs0f98s9f0s.execute-api.us-east-1.amazonaws.com 之类的 URL 访问.

为了缩短它并重新命名它,我设置了一个 CNAME 记录以将 myapi.mydomain.com 映射到 sd098fs0f98s9f0s.execute-api.us-east-1.amazonaws.com。

使用原始 URL,这个简单的 Python 能够完美地访问 API:

import requests     
r = requests.get(url='https://sd098fs0f98s9f0s.execute-api.us-east-1.amazonaws.com')

但是,使用新 URL:
import requests     
r = requests.get(url='https://myapi.mydomain.com')

导致错误:
Traceback (most recent call last):
File ".env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 603, in urlopen
chunked=chunked)
File ".env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 344, in _make_request
self._validate_conn(conn)
File ".env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 843, in _validate_conn
conn.connect()
File ".env/lib/python3.7/site-packages/urllib3/connection.py", line 370, in connect
ssl_context=context)
File ".env/lib/python3.7/site-packages/urllib3/util/ssl_.py", line 355, in ssl_wrap_socket
return context.wrap_socket(sock, server_hostname=server_hostname)
File "/usr/lib/python3.7/ssl.py", line 423, in wrap_socket
session=session
File "/usr/lib/python3.7/ssl.py", line 870, in _create
self.do_handshake()
File "/usr/lib/python3.7/ssl.py", line 1139, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1076)

这是什么原因造成的,我该如何解决?

最佳答案

我看到你正在使用https。服务器证书颁发给特定的主机名(通用名称属性)。此名称必须与您尝试使用 HTTPS 访问的地址匹配。如果您添加了 DNS CNAME,则必须更新证书。如果我没记错的话,您必须将 CNAME 添加为备用主题名称属性,因此您需要一个新证书。

错误“WRONG_VERSION_NUMBER”可能有点误导。这意味着服务器提供了错误的 TLS 版本。在 TLS 握手中,客户端和服务器协商 TLS 版本。如果服务器仅支持 1.0 而您的客户端仅接受 1.2+,则会出现“WRONG_VERSION_NUMBER”。但是,如果客户端收到一些意外数据,例如 ,也可能会发生这种情况。普通 HTTP 而不是 HTTPS。要检查究竟是什么意外数据,您必须捕获 wireshark/tcpdump 网络流量日志。我最近浪费了很多时间调试 wrong_version_number。只有在查看了wireshark的日志之后,才发现是中国防火墙,因为我们在最初的Client Hello中设置了HTTP Forbidden。

关于python - 使用 CNAME 时 Web 请求出现 SSL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61294580/

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