我已经更新到python2.7.14,它应该支持TLSv1.2,但是仍然不支持

2024-09-28 18:59:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个https url,它有TLSv1.2证书,我已经从2.7.9更新到Python 2.7.14,它应该支持TLSv1.2,但仍然不起作用:

>>> import urllib>>> urllib.urlopen(url)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\urllib.py", line 87, in urlopen
    return opener.open(url)
  File "C:\Python27\lib\urllib.py", line 213, in open
    return getattr(self, name)(url)
  File "C:\Python27\lib\urllib.py", line 443, in open_https
    h.endheaders(data)
  File "C:\Python27\lib\httplib.py", line 1038, in endheaders
    self._send_output(message_body)
  File "C:\Python27\lib\httplib.py", line 882, in _send_output
    self.send(msg)
  File "C:\Python27\lib\httplib.py", line 844, in send
    self.connect()
  File "C:\Python27\lib\httplib.py", line 1263, in connect
    server_hostname=server_hostname)
  File "C:\Python27\lib\ssl.py", line 363, in wrap_socket
    _context=self)
  File "C:\Python27\lib\ssl.py", line 611, in __init__
    self.do_handshake()
  File "C:\Python27\lib\ssl.py", line 840, in do_handshake
    self._sslobj.do_handshake()
IOError: [Errno socket error] [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:661)

Tags: inpyselfsendurlssllibline
1条回答
网友
1楼 · 发布于 2024-09-28 18:59:14

这是一个复杂的问题

  1. 这个url需要TLSv1.2(2.7.9不支持)我有一个
  2. 不支持https的代理

虽然我修正了1。另一个问题(2)给出了同样的错误

解决方案:

  1. 已通过升级到Python 2.7.14修复
  2. 我的代理不支持https,所以我添加了和exeption,现在它可以工作了

(将“for all protocols”(用于所有协议)复选框留空,对于安全部分,请将地址和端口留空)

enter image description here

相关问题 更多 >