Discord.py在运行后显示SSLCertVerificationError.Git-openssl-lib和con



我遇到了一个与此问题类似的问题(证书验证失败(,我试图运行一个python bot来解决discord:Discord.py SSLCertVerificationError

我的问题:

Traceback (most recent call last):
File "c:/Users/ska19/BlackJack/Coding_Projects/DiscordBots/.vscode/Anekdotemain.py", line 15, in <module>
bot.run(settings['token'])
File "C:Usersska19Anaconda3libsite-packagesdiscordclient.py", line 708, in run
return future.result()
File "C:Usersska19Anaconda3libsite-packagesdiscordclient.py", line 687, in runner
await self.start(*args, **kwargs)
File "C:Usersska19Anaconda3libsite-packagesdiscordclient.py", line 650, in start
await self.login(*args, bot=bot)
File "C:Usersska19Anaconda3libsite-packagesdiscordclient.py", line 499, in login
await self.http.static_login(token.strip(), bot=bot)
File "C:Usersska19Anaconda3libsite-packagesdiscordhttp.py", line 291, in static_login
data = await self.request(Route('GET', '/users/@me'))
File "C:Usersska19Anaconda3libsite-packagesdiscordhttp.py", line 185, in request
async with self.__session.request(method, url, **kwargs) as r:
File "C:Usersska19Anaconda3libsite-packagesaiohttpclient.py", line 1012, in __aenter__
self._resp = await self._coro
File "C:Usersska19Anaconda3libsite-packagesaiohttpclient.py", line 483, in _request
timeout=real_timeout
File "C:Usersska19Anaconda3libsite-packagesaiohttpconnector.py", line 523, in connect
proto = await self._create_connection(req, traces, timeout)
File "C:Usersska19Anaconda3libsite-packagesaiohttpconnector.py", line 859, in _create_connection
req, traces, timeout)
File "C:Usersska19Anaconda3libsite-packagesaiohttpconnector.py", line 1004, in _create_direct_connection
raise last_exc
File "C:Usersska19Anaconda3libsite-packagesaiohttpconnector.py", line 986, in _create_direct_connection
req=req, client_error=client_error)
File "C:Usersska19Anaconda3libsite-packagesaiohttpconnector.py", line 939, in _wrap_create_connection
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:1076)')]

我已经尝试了一些解决问题的方法:

  1. 重新生成的机器人令牌
  2. 使时钟和数据精确到我所在的地区
  3. 更新的conda环境
  4. conda中已升级的证书(conda-install--升级证书(
  5. 更新的git

这些都无济于事,同样的问题也随之而来:(

我还看到了一个解决方案,比如直接转到python并运行:

install Certificate.command

但我不知道如何运行命令(sry筋疲力尽(。

或者手动安装证书,但我有点担心这种方法可能会崩溃。

在极度困惑之后,我决定检查git和conda中的openssl版本,发现它们不同:

  1. Git:
$ openssl version -a
OpenSSL 1.1.1h  22 Sep 2020
built on: Tue Sep 22 14:26:00 2020 UTC
platform: mingw64
options:  bn(64,64) rc4(16x,int) des(long) idea(int) blowfish(ptr)
compiler: gcc -m64 -Wall -O3 -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DUNICODE -D_UNICODE -DWIN32_LEAN_AND_MEAN -D_MT -DZLIB -DZLIB_SHARED -DNDEBUG -D__MINGW_USE_VC2005_COMPAT -DOPENSSLBIN=""/mingw64/bin""
OPENSSLDIR: "/mingw64/ssl"
ENGINESDIR: "/mingw64/lib/engines-1_1"
Seeding source: os-specific
  1. 条件提示:
OpenSSL 1.1.1d  10 Sep 2019
built on: Fri Sep 27 14:07:54 2019 UTC
platform: VC-WIN64A
options:  bn(64,64) rc4(16x,int) des(long) idea(int) blowfish(ptr)
compiler: cl /Zi /Fdossl_static.pdb /Gs0 /GF /Gy /MD /W3 /wd4090 /nologo /O2 -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM
OPENSSLDIR: "C:ciopenssl_1569593028961_h_envLibrary"
ENGINESDIR: "C:ciopenssl_1569593028961_h_envLibrarylibengines-1_1"
Seeding source: os-specific

我的问题的解决方案可能是在conda环境中更新openssl-dir,或者将git-openssl-dir设置为默认值但在与最初的问题冲突了几个小时后,我的脑海里浮现出:(

万一,我的代码(没什么重要的(:

import discord
from discord.ext import commands
from config import settings

bot = commands.Bot(command_prefix= settings['prefix'])

@bot.command()
async def hello(ctx):
author = ctx.message.author
await ctx.send(f'Hello, {author.mention}!')

bot.run(settings['token'])

配置文件:

settings = {
'token': token,
'bot': 'AnekdoteBot',
'id': id,
'prefix': '!'
}

有人能帮我找到解决办法吗?

好吧,正如我所说,您可以手动安装SSL证书。检查此项:https://github.com/Rapptz/discord.py/issues/4159-适用于windows

在此处找到SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败:无法获取本地颁发者证书(_SSL.c:1108(Discord/python

我在这里下载了PEM认证:https://crt.sh/?id=1然后把它们安装在我的本地电脑上,这很有帮助!

相关内容

  • 没有找到相关文章

最新更新