python - 在 python 中遇到 SSL 证书错误
问题描述
问题 :
运行时出现错误,如下面的代码所示。
目的 :
我想制作一个 Discord Bot,我按照网站上的教程进行操作,即使它是正确的,但为什么会出错?进展不顺利?,我是 Python 新手。
我的环境:
我将运行的 bot.py 中的代码:
# bot.py
import os
import discord
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
client = discord.Client()
@client.event
async def on_ready():
print(f'{client.user} has connected to Discord!')
client.run(TOKEN)
bot.py 的代码输出:
Traceback (most recent call last):
File "D:\Python\lib\site-packages\aiohttp\connector.py", line 969, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa
File "D:\Python\lib\asyncio\base_events.py", line 1081, in create_connection
transport, protocol = await self._create_connection_transport(
File "D:\Python\lib\asyncio\base_events.py", line 1111, in _create_connection_transport
await waiter
File "D:\Python\lib\asyncio\sslproto.py", line 528, in data_received
ssldata, appdata = self._sslpipe.feed_ssldata(data)
File "D:\Python\lib\asyncio\sslproto.py", line 188, in feed_ssldata
self._sslobj.do_handshake()
File "D:\Python\lib\ssl.py", line 944, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1123)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "F:\BotDiscord\bot.py", line 16, in <module>
client.run(TOKEN)
File "D:\Python\lib\site-packages\discord\client.py", line 718, in run
return future.result()
File "D:\Python\lib\site-packages\discord\client.py", line 697, in runner
await self.start(*args, **kwargs)
File "D:\Python\lib\site-packages\discord\client.py", line 660, in start
await self.login(*args, bot=bot)
File "D:\Python\lib\site-packages\discord\client.py", line 509, in login
await self.http.static_login(token.strip(), bot=bot)
File "D:\Python\lib\site-packages\discord\http.py", line 293, in static_login
data = await self.request(Route('GET', '/users/@me'))
File "D:\Python\lib\site-packages\discord\http.py", line 185, in request
async with self.__session.request(method, url, **kwargs) as r:
File "D:\Python\lib\site-packages\aiohttp\client.py", line 1117, in __aenter__
self._resp = await self._coro
File "D:\Python\lib\site-packages\aiohttp\client.py", line 520, in _request
conn = await self._connector.connect(
File "D:\Python\lib\site-packages\aiohttp\connector.py", line 535, in connect
proto = await self._create_connection(req, traces, timeout)
File "D:\Python\lib\site-packages\aiohttp\connector.py", line 892, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
File "D:\Python\lib\site-packages\aiohttp\connector.py", line 1051, in _create_direct_connection
raise last_exc
File "D:\Python\lib\site-packages\aiohttp\connector.py", line 1020, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
File "D:\Python\lib\site-packages\aiohttp\connector.py", line 971, in _wrap_create_connection
raise ClientConnectorCertificateError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host discord.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1123)')]