我试图使用Python 3 asyncio模块连接到另一方,但出现以下错误:

     36     sslcontext = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
---> 37     sslcontext.load_cert_chain(cert, keyfile=ca_cert)
     38

SSLError: [SSL] PEM lib (_ssl.c:2532)

问题是这个错误意味着什么.我的证书是正确的,the keyfile (CA certificate) might not.

推荐答案

假设正在使用3.6版:

见:https://github.com/python/cpython/blob/3.6/Modules/_ssl.c#L3523-L3534

 PySSL_BEGIN_ALLOW_THREADS_S(pw_info.thread_state);
 r = SSL_CTX_check_private_key(self->ctx);
 PySSL_END_ALLOW_THREADS_S(pw_info.thread_state);
 if (r != 1) { 
    _setSSLError(NULL, 0, __FILE__, __LINE__);
    goto error;
 }

它说的是SSL_CTX_check_private_key次失败;因此,私钥是不正确的.

参考可能的版本:

Python-3.x相关问答推荐

如何使用regex将电话号码和姓名从文本字符串中分离出来

如何在输入正确的用户名和密码时添加按钮?

丢弃重复的索引,并在多索引数据帧中保留一个

将f-字符串放置在f-字符串内

使用数据库将文件从Sharepoint下载到文件系统

Heroku 中的未知错误代码缺少一个或多个参数

从 LeetCode 的 Python 解决方案类中理解关键字 self

如何融化具有自定义名称的Pandas

魔术8球txt文件列表

列表中的重复数字与列表理解

为什么 Python 枚举中的可变值是同一个对象?

python 3.7 websockets的1006连接异常关闭错误

如何为 Python 中的线程设置异步事件循环?

try 注释散列变量时,ABCMeta对象不可下标

如何编写可 Select 充当常规函数的 asyncio 协程?

为 True 相交两个布尔数组

Python 3 中的连接列表

Selenium Python - 处理没有这样的元素异常

有效地判断一个元素是否在列表中至少出现 n 次

如何将python日志(log)级别名称转换为整数代码