我正在用 Python 编写一个 discord 机器人。每当我尝试连接到特定站点时,在运行 Amazon Linux 2 的 EC2 实例上,脚本都会返回以下错误:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: ClientConnectorSSLError: Cannot connect to host secure.site.here:443 ssl:None [[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1076)]
(实际网址已被截取。)
机器人本身已 dockerized,正在运行python:3.7.4-slim-buster
。使用镜像构建时不存在该错误python:3.7.4-slim-stretch
。
我还测试了在 MacOS 上使用基本映像构建的相同脚本-buster
以及 GCP Compute Engine 实例,两者都没有错误。
我遗漏了什么?欢迎提供任何建议。
答案1
如果您不提供出现错误的网站名称,我最好的猜测是该网站不支持 TLSv1.2,因此 OpenSSL 无法协商连接。Debian从 Buster 版本开始,OpenSSL 已禁用对 TLSv1.1 及更早版本的支持,尽管有建议称可以根据每个应用程序重新启用它如果你愿意的话。