【发布时间】:2015-05-07 18:55:31
【问题描述】:
我正在尝试使用 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)
问题就是错误的含义。我的证书是正确的,密钥文件(CA 证书)可能不正确。
【问题讨论】:
-
您确实提到密钥文件可能不正确。如果证书(公钥)没有与正确的私钥文件一起使用,证书加载将失败。
-
你有
keyfile=ca_cert,这似乎是不正确的(或者你选择了可怕的变量名)。你的ca_cert真的包含私钥吗? -
@larsks 选择可怕的变量名如何导致代码错误?关于如何命名它们的任何建议(或约定)? ca_cert 文件以
-----BEGIN CERTIFICATE-----开头,这似乎是一个有效的加密密钥,并以-----END CERTIFICATE-----结尾。页眉和页脚应该说不同的东西吗? -
对某个问题投反对票的人至少应该对原因发表评论,甚至可能对如何改进问题发表评论。
-
我已在此处回滚了上一次修订,因为不应将答案编辑到问题中。
标签: python python-3.x ssl ssl-certificate python-asyncio