Python - SSLV3_ALERT_HANDSHAKE_FAILURE,这是密码问题还是证书问题?

标签 python ssl

我正在尝试通过 python 请求 API 执行 https url,但是我收到错误:

  File "<console>", line 5, in <module>
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 513, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 623, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 514, in send
    raise SSLError(e, request=request)
SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:579)

我认为这可能是一个不受信任的警告,所以我使用了

requests.packages.urllib3.disable_warnings()

但这并没有奏效,进一步搜索表明它可能与密码有关?

我的代码如下:

import requests
username="ncm"
password="*****"
headers={'content-type':'application/json'}
response = requests.get('https://10.55.244.2/level/15/exec/-/traceroute/10.50.0.1/source/vlan/5/CR',
                        verify=False,
                        auth=(username, password),
                        headers=headers,
                        timeout=4)

证书出示 certificate info

最佳答案

经过一些搜索我发现使用 urlib2 是可行的,下面的代码可以正常运行

import urllib2, base64
request = urllib2.Request('https://yoururl')
base64string = base64.b64encode('%s:%s' % (username, password))
request.add_header("Authorization", "Basic %s" % base64string)   
result = urllib2.urlopen(request).read()

关于Python - SSLV3_ALERT_HANDSHAKE_FAILURE,这是密码问题还是证书问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45797105/

相关文章:

python - 字符串python的编码解码

ssl - Squeak-5.2 无法连接到 https ://github. com/

java - 如何监控 iOS/Android 设备中的 https/ssl 流量

ssl - 子域不适用于 https,但适用于 http

email - SSL 证书是否/可以特定于服务(例如,服务器对 HTTPS 使用的证书与 SMTP/TLS 不同)

ssl - Nginx 通过 Cloudflare 反向代理到 Jetty 应用服务器

python - python 3.8 或 3.8+ 中函数的一般签名是什么?

python循环求和函数

python - 导入错误 : Failed to import any qt binding, Python-Tensorflow

python - 为什么当底层任务抛出异常时 Celery 不会抛出异常