Python SSL:证书验证失败

2024-01-14

我在连接时遇到错误www.mydomain.com在使用 Windows 8.1 的相当新的机器上使用 Python 2.7.12。错误是SSL: CERTIFICATE_VERIFY_FAILED on the ssl_sock.connect下面的代码行。该代码将 SSL 连接包装在上下文中,并指定我不想执行证书验证:

ssl._create_default_https_context = ssl._create_unverified_context
s_ = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
context.verify_mode = ssl.CERT_NONE
context.check_hostname = True
context.load_default_certs()

ssl_sock = context.wrap_socket(s_, server_hostname=myurl)
ssl_sock.connect((myurl, int(myportno)))

我尝试将纯文本版本的安全证书从我尝试连接的服务器添加到 Python 引用的默认证书文件中 - 但这不起作用(无论如何,这没有意义)我应该需要这样做)

当我浏览到我尝试连接的域时,浏览器也不信任远程服务器证书,但是我已经检查了绑定到该域的证书并且它验证正常。是什么导致了不信任? (我目前正在调查从出现错误的计算机中删除 Windows 安全补丁,看看这是否是原因)

(使用相同代码的其他计算机上也出现过此问题,但在 Windows 检索全套更新后似乎已解决。问题仍然存在的计算机也有全套更新)


我解决了这个问题,该问题似乎与 2016 年 8 月 29 日发布的 Windows 安全更新有关,该更新导致使用 TLS 1.0 协议时出现证书验证问题。在没有安全更新的情况下重新安装 Windows 至少可以暂时恢复正常。我在 Windows 10 下运行时也没有遇到这个问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python SSL:证书验证失败 的相关文章

随机推荐